Use HTML tags inside rows of a table in a render array
Try creating the links using function Drupal::l,

For example,

$url = Url::fromUri('http://example.com/');
$link1 = \Drupal::l(t('Link1'), $url);
$url = Url::fromUri('http://example.com/');
$link2 = \Drupal::l(t('Link2'), $url);
$url = Url::fromUri('http://example.com/');
$link3 = \Drupal::l(t('Link3'), $url);
$rows = [
  array(
    $link1,
    $link2,       
    $link3,  
  ),
];
$header = [
    'header 1',
    'header 2',
    'header 3',
];
$render['table'] = [
  '#theme' =&gt; 'table',
  '#header' =&gt; $header,
  '#rows' =&gt; $rows,
]; 


To add other html tags to table , you can use Drupal markup element and renderer service,

$element['#markup'] = '&lt;span&gt;Example Span Tag&lt;/span&gt;';
$span_tag = \Drupal::service('renderer')-&gt;render($element);