Given a synchronous observer, is there a way to do this:
observable.SubscribeAsync(observer);
And have all methods on the observer
If by having the methods on the observer called asynchronously, you mean that you want a situation where a new notification can be published without waiting for handling of the previous notification to complete, then this is something you will have to do yourself. This breaks the contract of Rx, because if you can have multiple notifications in flight at the same time, you can no longer guarantee that notifications are processed in order. I think there are also other concerns with this approach - it's something you'll want to be careful about.
On the other hand, if you simply want to handle notifications on a different thread from the one that created the notifications, then ObserveOn and SubscribeOn are what you want to look into.