Not sure if you solved it or not, but for someone else who comes across this, the solution is to add an observer, similar to the example of tableview, i.e.
arrayController.AddObserver(this,new NSString("selectionIndexes"),NSKeyValueObservingOptions.New,IntPtr.Zero);
Then override the observation method.
public override void ObserveValue (NSString keyPath, NSObject ofObject, NSDictionary change, IntPtr context)
{
...
}
This works, but the NSTableviewBinding example uses a different method, but this did not work for me.