Use a SESSION variable and increase it when a post is displayed. If past redirect them to the registration screen. Here's an example of what I use, same concept, but to limit searches to one per 60 seconds.
// Require guests to wait sixty seconds between searches.
if($user_info['is_guest'])
{
$time = time();
if(!isset($_SESSION['last_search']) || ($_SESSION['last_search'] + 60 < $time))
$_SESSION['last_search'] = $time;
else
{
$txt['guest_search_limit'] = preg_replace('/WAIT/', ($_SESSION['last_search'] + 60) - $time, $txt['guest_search_limit']);
fatal_lang_error('guest_search_limit', false);
}
}