Вообще-то можно.... я как-то придумывал механизм - но он неоправданно жрет ресурсы.
идея такая...
при открытии сессии записываем ы базу время и путь к сессионному тмп-файлу.
Каждую минуту кроном запускаем скрипт, который проверяет базу на наличие записей без времени окончания и смотрит, существует ли файл, указанный в этой записи. Если нет - то записываем текущее время, как время окончания...
Погрешность в пару минут может быть......
Но это должны быть жуткие тормоза.....