I am still a bit unclear as to who registers with what, does the observer "register" with the subject when he starts observing, (then "registerWithSubject" would be OK, or does he just inform the subject that in case the latter changes, the observer needs to be notified, or does the subject "register" with the observer, basically saying "Hello, I changed, please observe me?"
Register with and register to are very different. After "to", you put the activity the registering person wants to perform, i.e. register to vote, register to bid, register to attend the course, etc.
After "with", you put the place/institution/object that is receiving/accepting your registration, i.e. university, voter registration office, auction house, etc.
In other words, in your example "to" would only work as "RegisterToBeNotified", if it is the observer doing the registering, or "RegisterToNotify", if it is the subject registering, but both cases only apply if the notification should be in the future and the objects are "signing up to be part of the program", so to speak. "registerForNotification" would also work. If the actual notification is what you mean by "register", then "RegisterWithSubject" or "RegisterWithObserver" would make more sense.
Additionally there is also register at, basically the same as register with, but I don't know whether there is any rules on it, I try to go with my Sprachgefühl...(He registered WITH the university, AT the registration office, TO attend this year's seminars...)