You do know that DataRow is the row of a DataTable correct?
What you currently have already loop through each row. You just have to keep track of how many rows there are in order to get the current row.
int i = 0;
int index = 0;
foreach (DataRow row in dt.Rows)
{
index = i;
// do stuff
i++;
}