Si el enlace de datos del DataGridView lo hiciste por medio de un BindingSource (es lo que hace automáticamente Visual Studio si lo generaste todo con las herramientas gráficas, pero no necesariamente tiene por qué ser así si escribiste tú el código), entonces
el CurrencyManager del BindingSource tiene una propiedad llamada
Position que te dice la posición del dato seleccionado.
O bien, si en lugar de saber la posición te viene mejor saber cuál es el propio dato seleccionado, puedes usar la propiedad
Current del BindingSource.