Możesz przy rejestracji dodać rekord do tabeli "aktywacja" id użytkownika i aktualny czas (np. z funkcji time()) + czas w sekundach w ciągu których user musi aktywować konto. Możesz teraz sprawdzać cronem tą tabele czy aktualny czas nie jest większy niż ten w tabeli aktywacja, jeśli jest to usuwasz takie konto. Możesz też podpiąć ten kod zamiast co crona do kodu, który jest aktywowany za każdym odświeżeniem strony przez użytkownika. Gdybyś miał pytania to mów :)