How to create a metabox that will list all my pages in a dropdown selector?

You can use wp_dropdown_pages. For example

 add_action( 'add_meta_boxes', 'myplugin_add_custom_box' );

/* Adds a box to the main column on the Post edit screens */
function myplugin_add_custom_box() {
    add_meta_box( 
        'myplugin_sectionid',
        __( 'My Post Section Title', 'myplugin_textdomain' ),
        'myplugin_inner_custom_box',
        'post' 
    );
}

/* Prints the box content */
function myplugin_inner_custom_box( $post ) {

     $dropdown_args = array(
        'post_type'        => 'page'
        'name'             => 'myplugin[page]',
        'sort_column'      => 'menu_order, post_title',
        'echo'             => 1,
    );

         // Use nonce for verification
         wp_nonce_field( plugin_basename( __FILE__ ), 'myplugin_noncename');

         //Dropdown of pages
         wp_dropdown_pages( $dropdown_args );
}

See also the Codex on handling metabox data.