I'm assuming the code shown is in the button click handler. If so, your problem is that "CurrentRow" is only ever going to be the SINGLE row that is currently active.
While I do not think this is a good approach, the following would come close to your intent (in the question):
foreach (DataGridViewRow row in dataGridView1.Rows)
{
int total = 0;
for (int index = 1; index < row.Cells.Count; index++)
total += Convert.ToInt32(row.Cells[index].Value);
row.Cells[0].Value = total;
}
Beyond that, I'm not sure how to advise you. I'd need more information.
The user-interface you've chosen is a bit odd. You might consider something different, but then again perhaps you have an odd requirement :)
I would probably also suggest altering the list of objects or data table, backing the grid view, instead of directly altering the grid view itself. Then, you can re-trigger data binding.
However, here again I lack adequate information from your question to be certain this is the best advice.