How do I load templates within templates?
You need to (properly) define two theme hooks. One for your table, and the second for your rows. Then, in the preprocess function for your table, you can call the row template for each row in your data array, something like:

function MODULE_theme() {
  return array(
    'mylist' =&gt; array('arguments' =&gt; array('data' =&gt; array())),
    'mylist_row' =&gt; array('arguments' =&gt; array('id' =&gt; NULL, 'name' =&gt; NULL)),
  );
}

function MODULE_preprocess_mylist(&amp;$variables) {
  $rows = array();
  foreach ($variables['data'] as $item) {
    $rows[] = theme('mylist_row', $item['id'], $item['name']);
  }
}


If you want to display a nice and themed table, you don't need to implement your own theme hooks using templates, the table theme hook provided by core should be fine. It is a complete and flexible solution for most table output needs.

function MODULE_table() {
  $header = array(t('ID'), t('Name'));
  $rows = array(
    array(1, 'foo'),
    array(2, 'bar'),
    array(3, 'foobar'),
  );
  return theme('table', $header, $rows),
}