I have been using InTheHand 32Feet.NET Bluetooth Library (http://32feet.codeplex.com) and wanted to post a solution that took me far too long to find.
To get callback working for pairing authentication, use NULL for a pin when calling PairRequest(Address, Pin);
new BluetoothWin32Authentication(Win32AuthCallbackHandler);
var btDiscoveredList = btClient.DiscoverDevices(255, false, false, true);
foreach (var btItem in btDiscoveredList)
{
BluetoothSecurity.PairRequest(btItem.DeviceAddress, null);
btItem.SetServiceState(BluetoothService.HumanInterfaceDevice, true);
}