You're grouping the source data twice. As a result, every row will end up with a count of
1
.
You're also adding the grouped rows to the wrong grid, and not adding the count.
Change the code so that it only groups once, and add the name and count to the second grid:
var list = dataGridView1.Rows.Cast<DataGridViewRow>()
.GroupBy(r => r.Cells["Agent Name"].Value, (name, rows) => new { name, Count = rows.Count() })
.OrderByDescending(g => g.Count);
foreach (var g in list)
{
dataGridView2.Rows.Add(x.name, x.Count);
}