Create custom template in plugin and display it into post template section?

Page templates are limited to themes by design. Page templates belong to the presentation layer while plugins should do very limited and focused presentation as they can’t “know” the presentation implications of their output.

But if you have to do it in a plugin, the better way is to add another box to the page editing screen in which the user can select to use the plugin’s temlate for that age, store the value in a meta data and do something like

add_filter('page_template','wpse1223720_template');

function wpse1223720_template($temlate) {
  global $post;

  if (get_post_meta($post->ID,your telmlate meta key) == 'use my temlate')
    return the path to your template file.
  else 
   return $template;
}

Not tested at all. This code interrupts the code that find the appropriate template file to use if the content being served is a page, and makes wordpress use your own template instead of the one associated with the page.

Alternative approach is to run your hook on the template_redirect action and run “manually” your template. You can see and example for this here https://stackoverflow.com/questions/4647604/wp-use-file-in-plugin-directory-as-custom-page-template