How to remove only pages from Admin Bar?

The menu bar is all controlled by an object instantiated as $wp_admin_bar.

I think this is what you want:

function remove_page_menu_wpse_104826() {
  global $wp_admin_bar;
  // var_dump($wp_admin_bar); // debug; uncomment and look at the bottom of the page for the big mess
  $wp_admin_bar->remove_menu('new-page');
}
add_action('wp_before_admin_bar_render', 'remove_page_menu_wpse_104826', 1);

tech