tableselect does not work for me somehow 1
I copied your code from and commented the variables and/or functions you're using since I don't know what they are for and just replaced a simple array to loop through.



/**
 * Implements hook_menu().
 */
function leomod_menu() {
  $items['leoo'] = array(
    'title' =&gt; 'asd',
    'page callback' =&gt; 'drupal_get_form',
    'page arguments' =&gt; array('leomod_asd_form'),
    'access callback' =&gt; TRUE,
  );
  return $items;
}

/**
 * Form.
 */
function leomod_asd_form($form, &amp;$form_state) {
  $header = array(
    'field_name' =&gt; t('FIELD NAME'),
    'field_type' =&gt; t('FIELD TYPE'),
    'no_of_values' =&gt; t('NO OF VALUES'),
    'display_fields' =&gt; t('DISPLAY FIELDS'),
    'field_label' =&gt; t('FIELD LABEL'),
    'required' =&gt; t('Required'),
    'product_type' =&gt; t('Product Type'),
  );

  $rows = array();
  $tests = array('1', '2', '3');
  //foreach(commerce_product_types() as $product_type =&gt; $product_type_array){
  foreach($tests as $test) {
    // $field_info = field_info_instances('commerce_product',$product_type);
    //foreach($field_info as $machine_name =&gt;$field_details){
      $rows[$test] = array(
        'field_name' =&gt; $test,
        'field_type' =&gt; $test,
        'no_of_values' =&gt; $test,
        'display_fields'=&gt; $test,
        'field_label' =&gt; $test,
        'required' =&gt; $test,
        'product_type'=&gt; $test,
      );
    //}
  }

  $form['table'] = array(
    '#type' =&gt; 'tableselect',
    '#header' =&gt; $header,
    '#options' =&gt; $rows,
    '#multiple' =&gt; TRUE,
  );

  //  print_r($form);
  $form['save'] = array(
    '#type' =&gt; 'submit',
    '#value' =&gt; t('Save'),
  );

  return $form;
}


Since your table structure is working, I suspect there is something wrong with these lines:

foreach(commerce_product_types() as $product_type =&gt; $product_type_array) {


and

$field_info = field_info_instances('commerce_product',$product_type);
foreach($field_info as $machine_name =&gt;$field_details) {


Also make sure you:


Flushed caches
Show all errors while developing since you're dealing with functions there that may return some errors that aren't displayed
Check the variables and functions if they return anything by using print_r() or Devel module's dsm().