For this, You can try Repeater control. This will help you to design dynamic table.
<asp:repeater id="cdcatalog" runat="server" xmlns:asp="#unknown">
<HeaderTemplate>
<table border="1" width="100%">
<tr>
<th>Title</th>
<th>Artist</th>
<th>Country</th>
<th>Company</th>
<th>Price</th>
<th>Year</th>
</tr>
</HeaderTemplate>
<itemtemplate>
<table><tbody><tr>
<td><![CDATA[<%#Container.DataItem("title")%>]]></td>
<td><![CDATA[<%#Container.DataItem("artist")%>]]></td>
<td><![CDATA[<%#Container.DataItem("country")%>]]></td>
<td><![CDATA[<%#Container.DataItem("company")%>]]></td>
<td><![CDATA[<%#Container.DataItem("price")%>]]></td>
<td><![CDATA[<%#Container.DataItem("year")%>]]></td>
</tr></tbody></table>
</itemtemplate>
<footertemplate>
</footertemplate></table>
</asp:repeater>
and in Code behind you can use binding a dataset to repeater control.
DataSet mycdcatalog = GetCatalogDataSetByID(CatalogId);
cdcatalog.DataSource=mycdcatalog;
cdcatalog.DataBind();