Я думаю это можно сделать так:
Создается id сессии:
$s_id = md5(uniqid(rand()));
, Далее получаем ip юзера, время, когда он загрузил страницу в секундах с 1970.Записываем это все в его куки.Записываем это все mySQL.
Далее проверяем, нет ли чувака с таким ip и $s_id(если он поддерживает куки:(), Если есть, записываем новое время, если нет, записываем все в базу.
При обращении пользователя к странице мы сравниваем все даты в mySQL с текущей, удаляем старше 20 минут и считаем даты младше 1 минуты.
-=-=-
Возможно я плохо объяснил, но я так думаю?