How should I render the tpl of module at theme
You don't need a customized page template file because you are using a template file for your theme. What you need to do is to fix your code, which should be as the following one.

function mymodule_menu() {
  $items['mymodule/list'] = array(
    'type' =&gt; MENU_CALLBACK,
    'page callback' =&gt; 'mymodule_list_view',
    'access arguments' =&gt; array('access content'),
  );

  return $items;
}

function mymodule_list_view() {
  return theme('list_view');
}

function mymodule_theme() {
  return array(
    'list_view' =&gt; array(
      'template' =&gt; 'list-view',
    ),
  );
}


Notice that:


For the menu callback, you should define the access callback, and the access arguments, or the menu will not be visible to the users (except the user #1). By default, Drupal uses user_access() as access callback; in this case, you need to provide the permission string as access arguments.
The template filename must be equal to the theme name; the only acceptable difference is the underscores replaced by hyphens.
Your page callback needs to return its output, or print it. In the first case, the rendered page will contain all the output returned from Drupal, such as blocks; in the second case, the rendered page will just contain what your page callback prints.