Restricting certain blog posts by date?

Before the start of your loop on single.php, add this code to check the current post against the fifth most recent post date. If the current post is more recent than fifth, show the post, and if older, show a message that has to do with being loggedin/a member.

global $post;
$tmp_post = $post; // Retain current post query

$fifth_post=""; // Set variable

// Query for fifth post date
$args = array( 'numberposts' => 1, 'offset'=> 4 );
$fifthPost = get_posts( $args );
foreach( $fifthPost as $fifth ) : setup_postdata($fifth);
$fifth_post = get_the_date("Y-m-d");
endforeach;

// Restore current post
$post = $tmp_post;

$fifth_post = strtotime($fifth_post);
$this_post = date("Y-m-d");
$this_post = strtotime($this_post);

// Post is one of most recent 5, OR user is logged in
if ( $this_post > $fifth_post || is_user_logged_in() ) {
    // Begin regular loop
} else if (!is_user_logged_in() && $this_post < $fifth_post) {
    // Show whatever message to non-loggedin/non-members
}