Credo tu debba usare un repeater in un modo simile al seguente
<asp:Repeater ID="tabella" Runat="server">
<HeaderTemplate>
<table>
<thead>
<tr>
<th><%=col1%></th>
<th><%=col2%></th>
</tr>
</thead>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%# DataBinder.Eval(Container.DataItem,"col1")%></td>
<td><%# DataBinder.Eval(Container.DataItem,"col2")%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
Le intestazioni delle colonne vengono messe nel tag <thead> e sono variabili stringa public nel codebehind (quindi fisse).
Spero di aver capito bene le tue richieste
Ciao