Mostrando varios encabezados de columnas combinados en un DataGridView

Problema: Deseo tener, como en Microsoft Excel, un encabezado doble en dos columnas que estén combinados.

De esta manera.

------------------------------------------------------
|     Enero          |       Febrero         |     Marzo          |
|  Ganó | Perdió |  Ganó   | Perdió   |  Ganó | Perdió  |
------------------------------------------------------
|           |            |             |              |            |             |
|           |            |             |              |            |             |
------------------------------------------------------

Solución: Se debe personalizar el evento Paint.

Para mayor entendimiento, pongo un ejemplo.

Tengo un formulario llamado Form1, el cual contiene un grid llamado DataGridView1.

En el evento load del formulario lleno el grid.

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Lleno los datos del grid
        With DataGridView1
            .Columns.Add("", "Ganó")
            .Columns.Add("", "Perdió")
            .Columns.Add("", "Ganó")
            .Columns.Add("", "Perdió")
            .Columns.Add("", "Ganó")
            .Columns.Add("", "Perdió")

            .ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
            .ColumnHeadersHeight = .ColumnHeadersHeight * 2
            .ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter
        End With
    End Sub

Luego, se personaliza el evento Paint del DataGridView.

    Private Sub dataGridView1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles DataGridView1.Paint
        Dim monthes As String() = {"Enero", "Febrero", "Marzo"}

        Dim j As Integer = 0
        While j < 6
            Dim r1 As Rectangle = Me.DataGridView1.GetCellDisplayRectangle(j, -1, True)
            r1.X += 1
            r1.Y += 1
            r1.Width = r1.Width * 2 - 2
            r1.Height = r1.Height / 2 - 2

            e.Graphics.FillRectangle(New SolidBrush(Me.DataGridView1.ColumnHeadersDefaultCellStyle.BackColor), r1)

            Dim format As New StringFormat()

            format.Alignment = StringAlignment.Center
            format.LineAlignment = StringAlignment.Center
            e.Graphics.DrawString(monthes(j \ 2), Me.DataGridView1.ColumnHeadersDefaultCellStyle.Font, _
                                  New SolidBrush(Me.DataGridView1.ColumnHeadersDefaultCellStyle.ForeColor), r1, format)
            j += 2
        End While
    End Sub

Nota: Ejemplos e información proporcionada desde está página web: Windows Forms Data Controls and Databinding FAQ