Is it possible to write a Hide() method that can behave differently depending on whether the object is being edited, displayed as single object, displayed in table,

If I want to hide/show properties depending upon the view mode of an object (I.e. Object properties displayed in table, object properties in readonly list, object properties displayed in editable list), then can this be achieved using hide methods, or must
I write custom views using the property and collection extensions (I.e PropertyListEditWith etc.)

Not currently. The only 'modality' to Hide (or Disable) is in relation to persistence e.g. WhenTo.OncePersisted, which I am sure you have already found. Adding modes such as e.g. EditMode or InATable' is something that we have discussed,
but never fully specified or implemented.