@AnGStich würde es so machen:
Der nicht-registrierte user wird in der db angelegt. Das temp-user objekt braucht in der datenbank ein datumsfeld, nennen wir es lastupdate.
Wenn der user das erste mal die seite besucht, wird ein temp-user objekt in der db gespeichert, inkl. des lastupdate felds.
Sobald dein User nun eine seite wechselt (auf deinem server), wird ein ajax-request an e updatetempuser.php gesendet. In der updatetempuser.php wird das datumsfeld in der temp-user tabelle aktualisiert (passend zum user natürlich, nicht alle
;))
Gleichzeitig wird alle, sagen wir mal 2 Minuten, per ajax ein request vom client browser an den server geschickt (updatetempuser.php).
Nun lässt du einmal täglich oder stündlich ein cronjob laufen, der ein script ausführt. Dieses script löscht alle temp-user aus der db, die länger wie 2 minuten kein update mehr hatten.
fertig
;)