Semplicemente un TemplateField nella Grid:
codice:
<asp:TemplateField HeaderText="N.">
<ItemTemplate>
<asp:label id="lbContatore" runat="server" text="<%# contatore %>" />
</ItemTemplate>
</asp:TemplateField>
...e lato server:
codice:
Public contatore As Integer = 1 ' In cima al codice della classe
......
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
contatore += 1
.
.
End If
End Sub