You may not be aware that htl.html accepts arrays. Here is an example that renders the penguins dataset into a table:
htl.html`<div class="mytable">
<table>
<tr>${Object.keys(penguins[0]).map(d => htl.html`<th>${d}`)}</tr>
${penguins.map(
d => htl.html`<tr>${ Object.values(d).map(v => htl.html`<td>${v}`) }`
)}
</table>
<style>
.mytable { overflow: auto; width: fit-content; height: 300px; resize: vertical }
.mytable table { margin: 0 8px }
.mytable tr:first-child { position:sticky;top:0;background:#fff }
`
