Стандартно заводится поле типа "last_visit", которое обновляется при обновлении странички каждого пользователя.
А потом просто считается количество пользователей, время обновления этого поля которые не превышает например 5-15 минут (это кто как сам решит по времени). Если это форум то логично поставить 5 минут, если это сайт с большими статьями - то и 15 минут не грех.
Иногда еще заводят отдельную таблицу вместо поля и туда пишут новую строку при обновлении странички у юзера, но это дикая избыточность. Используется в основном если помимо последнего визита нужно хранить какие-либо еще данные.