Form post tag missing
Your way of implementation is partially wrong. Please try it like that:

function eventhistory_menu() {
  $items['personal-history'] = array(
    'title' =&gt; 'Event history',
    'page callback' =&gt; 'drupal_get_form',
    'page arguments' =&gt; array('eventhistory_edit_form'),
    'theme callback' =&gt; 'eventhistory_template',
    'access callback' =&gt; TRUE,
  );

  return $items;
}

function eventhistory_theme($existing, $type, $theme, $path) {
  return array(
    'eventhistory_template' =&gt; array(
      'variables' =&gt; array('output' =&gt; NULL, 'hist_form' =&gt; NULL),
      'template' =&gt; 'eventhistory_template',
    ),
  );
}


function eventhistory_edit_form($form, &amp;$form_state) {
 $form['#tree'] = TRUE;
 $num_hist = 0;

 $form['history']  = array(
   '#type' =&gt; 'fieldset',
 );

 if ($form_state['hist_num']) {
   for ($i = 1; $i &lt;= $form_state['hist_num']; $i++) {
     $form['history']['num' . $i] = array(
       '#value' =&gt; 'Edit',
       '#type' =&gt; 'submit',
     );
   }
 }

 return $form;
}


I've discarded the historypage_rendered function from your code and called the form directly in hook_menu implementation. I also added the theme callback to hook_menu, and also renamed your form function to follow Drupal coding standards.