Io non userei nè l'uno nè l'altro ma farei una table a mano. Però, tempo fa, in questo forum ho visto questo esempio che ti ripropongo. L'esempio crea una riga di intestazione unendo due colonne.

codice:
<%@ Page Language="C#"  %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    protected void Page_Load(object sender, EventArgs e)
    {
        ModuloWeb.DataBind(this.GridView1, MioModulo.StringaConnessioneTest, "SELECT * FROM REGIONI ORDER BY NOME_REGIONE", new string[] { "codice_istat_regione" });
    }


    protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
    {
        //reindirizzo il metodo render predefinito al metodo personalizzato
        if (e.Row.RowType == DataControlRowType.Header)
            e.Row.SetRenderMethodDelegate(CreaIntestazione);
    }

    private void CreaIntestazione(HtmlTextWriter writer, Control ctl)
    { 
        //non c'è bisogno di <tr> perchè il writer lo mette in automatico
        writer.Write("<td colspan=\"2\" align=\"center\" style=\"color:darkblue;background-color:#99ccff\" >CAMPI</td>");
        writer.Write("</tr>");
        this.GridView1.HeaderStyle.AddAttributesToRender(writer);
        
        //ricostruisco la testata originale generata da gridwiew
        writer.RenderBeginTag("tr");
        int ind = 0;
        while (ind <= ctl.Controls.Count - 1)
        {
            ctl.Controls[ind++].RenderControl(writer);
            
        }
        //non c'è bisogno della chiusura </tr> perchè il writer lo mette in automatico
        
    }
    
    
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Pagina senza titolo</title>
    <link href="../../../../stili/Styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <form id="form1" runat="server">
        <asp:GridView ID="GridView1" runat="server" EnableViewState="false" CellPadding="4" ForeColor="#333333" GridLines="None" OnRowCreated="GridView1_RowCreated">
            <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
            <EditRowStyle BackColor="#999999" />
            <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
            <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
            <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
        </asp:GridView>
    </form>
</body>
</html>