foreach выполняет итерацию по списку элементов управления. Этот список "не отсортирован", поэтому вам нужно его отсортировать.
Если вам нужна определенная сортировка, я бы скопировал список в словарь, ключом которого является свойство, для которого вы сортируете.
Вот небольшой фиктивный код, который может объяснить, что я имел в виду.
Dictionary<int, IControl> controls = new Dictionary<int, IControl>();
foreach(IControl control in form.Controls){
int tabIndex = control.TabIndex;
controls.add(tabIndex, control);
}
controls.Sort();
foreach(IKeyValuePair<int, IControl> control controls){
control.DoSome();
}