Os dejo una imagen, de 32x32p., con el código, como podéis ver es bien simple.
Aquí tenéis el código, para los que no os gusta teclear, copy/paste :)
Private Sub DataGridView1_CellPainting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) Handles DataGridView1.CellPainting
' En la tercera columna añado el icono edit.ico con
If e.ColumnIndex = 3 AndAlso e.RowIndex >= 0 Then
e.Paint(e.CellBounds, DataGridViewPaintParts.All)
Dim celBoton As DataGridViewButtonCell = TryCast(Me.DataGridView1.Rows(e.RowIndex).Cells(3), DataGridViewButtonCell)
Dim icoAtomico As New Icon(Environment.CurrentDirectory + "\edit.ico")
e.Graphics.DrawIcon(icoAtomico, e.CellBounds.Left + 3, e.CellBounds.Top + 3)
Me.DataGridView1.Rows(e.RowIndex).Height = icoAtomico.Height + 10
Me.DataGridView1.Columns(e.ColumnIndex).Width = icoAtomico.Width + 10
Me.DataGridView1.Rows(e.RowIndex).Cells(3).ToolTipText = "Editar cliente"
e.Handled = True
End If
End Sub
En el evento CellPainting del datagridview añadimos el código de arriba y el resultado es este:
Espero que os sea útil.