D7 - List entries on config form
To expand on mojzis's comment:

// Load your data.
$entries = db_query('SELECT * FROM {my_table}')-&gt;fetchAll();

// Prepare a header for your table. The array keys will match up to the key used to input rows in a minute. The values are the column headers.
$header = array(
  'title' =&gt; 'Entry title',
  'foo' =&gt; 'Bar',
  'op' =&gt; 'Operations',
);

// Loop through your data and prepare table rows.
$rows = array();
foreach ($entries as $entry) {
  // Prepare your operation links.
  $op_links = array(
    l('view', 'path/to/entry/' . $entry-&gt;id),
    l('edit', 'path/to/entry/' . $entry-&gt;id . '/edit', array('query' =&gt; drupal_get_destination())),
    l('delete', 'path/to/entry/' . $entry-&gt;id . '/delete', array('query' =&gt; drupal_get_destination())),
  );

  $rows[] = array(
    'title' =&gt; $entry-&gt;title,
    'foo' =&gt; $entry-&gt;bar,
    'op' =&gt; implode(' ', $op_links),
  );
}

// Prepare the build
$form['existing_entries'] = array(
  '#theme' =&gt; 'table',
  '#header' =&gt; $header,
  '#rows' =&gt; $rows,
  '#empty' =&gt; t('No entries have been created.'),
);