Я просто не понимаю что мешает навесть логику тут func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { тут пиши логику кому делать хедер кому нет }
Если у тебя MVVM во viewModel контроллера где лежит таблица
Я мб что-то не понимаю, но исходя из вашей логики вы будет прикидывать делегат через вьюМодели, либо под каждый передавать экшенБлок, но это тоже сделать удобно не получится