I guess you must give time for the grid to be loaded so you must put the ClearSelection in the databindingcomplete because if you call ClearSelection after filling the grid, the clearselection will execute before the grid draws itself (thus selecting 1st row right after being painted)
private void dgvSchedule_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
dgvSchedule.ClearSelection();
}