wp_pagination not displaying at top of page

query_posts() overwrites the original query, and the pagination gets the original before the query_posts() call and the changed after it.

Solution: Don’t use query_posts(), filter pre_get_posts instead. We have tons of examples for that on our site. 🙂

Here is some pseudo code (meaning: not tested).

add_filter( 'pre_get_posts', 'wpse_58843_list_cat_16' );

function wpse_58843_list_cat_16( $query )
{
    // make sure this matches your template’s file name.
    // See http://codex.wordpress.org/Function_Reference/is_page_template
    if ( ! is_page_template( 'press.php' ) )
    {
        return $query;
    }

    $query->set( 'cat',            16 );
    $query->set( 'posts_per_page', 6 );
    $query->set( 'post_type',      'post' );

    return $query;
}