Adding a submit button in a themed table doesn't work
Use instead of #theme a form element #type:
'#type' =&gt; 'table'

The table form element has an extra step for processing when used in a form.
You don't need '#rows'. Any array key not starting with #, also the index added automatically by appending a row with [], is considered to be a renderable child and displayed as row.