How can I prevent Drupal from stripping/sanitizing anchor tag
Just for sanity's sake...from a 'Drupal' point of view, your code works fine. For example (without the loop), 

$emailAddress = 'test@test.com';
$entry['Email'] = l($emailAddress ,'mailto:'.$emailAddress , array('html' =&gt; TRUE)); 

//Snippet of render array being used to create the table 
$rows = array();
$rows[] = array(
    array('data' =&gt; $entry['Email']),
);

print theme('table', array('rows' =&gt; $rows));


Produces:

&lt;table&gt;
  &lt;tbody&gt;
    &lt;tr class="odd"&gt;
      &lt;td&gt;&lt;a href="mailto:test@test.com"&gt;test@test.com&lt;/a&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;


You may have a custom implementation of theme_table() somewhere which sanitises the incoming cell data, but it's not being caused by Drupal core.

Or, it might simply be that you're trying to re-use $entry when it doesn't make sense to.

$entry['Email'] = l($emailAddress ,'mailto:'.$emailAddress , array('html' =&gt; TRUE)); 

...

foreach ($tableEntries as $entry) {


Are you sure you meant to overwrite the outer $entry array with the one in the foreach?