1. You could have a collumn which stores SessionID. When user logs in from another location, it replaces the SessionID and he is logged off from old location.
2. If I was doing that with timer in ASP.NET application, application would got crazy.
3. On each user action you can call function to check if user is logged.