Alright, from a hypothetical standpoint, I would say your solution is AJAX.
Step by step, this is how I imagine what you want to happen would work:
1. User hits form button. When that button is hit, trigger the execution of a PHP script. In this instance, your PHP script will check a database field whether a time for the user has been set or not. If not, then you store the current time.
2. Have the AJAX code get the stored time from the php script, and then get the current time. Through some basic math you should get the amount of time that has elapsed. From there on, just make a simple javascript countdown timer. The great part about this is that if the user refreshes the page, it won't influence the fact that the time they hit submit is still stored in a database.
3. If the javascript timer counts down to zero, execute another PHP script that will remove the time from the database.
4. Since the page that the form button corresponds to is probably PHP, just make sure that the code on that page cannot be executed if a time is set in the database.
This is all theoretical, but its definitely possibly. Not easy, but doable.