The idea here isnt to stop his session from timing out - it's to hold his entered data while he logs back in, and then pass that data back in.
If your system detects a timeout (No session value);
Start a session (should be done anyway)
Serialize $_POST as an item (i'm gonna call it 'formdata') in the session.
Save the target page as another session variable. (if your login form is using PHP_SELF, you dont need to worry about this)
Present login page.
Now the login parser needs a bit more logic.
If the login was successful;
Unset the login post variables;
Unserialize anything in $SESSION['formdata'] back into $POST (yes, this is naughty but it works)
load the page as normal.