Display all posts that were published before full post on single.php

How about something along these lines?

function my_filter_where( $where="" ) {
    global $post;

    $where .= ' AND post_date <= "'.$post->post_date.'"';
    return $where;
}

add_filter( 'posts_where', 'my_filter_where' );
$query = new WP_Query( $query_string );
remove_filter( 'posts_where', 'my_filter_where' );