Repeater Control can render headers,each row,footer with the exact html you specify for each row. But even a gridview can be styled to look cleaner in most cases, only that you cant prevent a table from being rendered.
<asp:Repeater ID="RepeaterSample" runat="server">
<HeaderTemplate>
<div id="header">
Header</div>
</HeaderTemplate>
<ItemTemplate>
<div id="Oddrow">
Custom Content</div>
</ItemTemplate>
<AlternatingItemTemplate>
<div id="EvenRow">
Custom Content</div>
</AlternatingItemTemplate>
<FooterTemplate>
<div id="footer">
Footer</div>
</FooterTemplate>
</asp:Repeater>
Hope it helps.