Two methods:
1) Run a check every minute and compare to the prior minute's registrations. If any disappear but do not have an unregister entry, create an "force-unregister" entry.
2) Whenever you see a register for an already registered sip account, you can modify that to "re-register" or merely notify the client that this occurred. Problem: You have no idea when the "un"register occurred with this method. If someone is trying to use this information for troubleshooting, it may only be 50% useful compared to the above.
OK: Technically, you could also consider investigating the auto-unregister functionality within asterisk and perhaps find a way to capture that event in a DEBUG log or AMI event. But that's a long shot, I'm not sure it can be done without altering the Asterisk code and recompiling.