Может быть сделано в любом случае. Я предпочитаю делать это в IB, так как раскладка намного проще, когда вы видите, что делаете. Для динамических прототипов вы проектируете только одну ячейку, и содержимое будет заполняться в методе cellForRowAtIndexPath. С помощью таблицы таблиц статической ячейки вы можете создать все это (много разделов и много строк). Требование для табличного представления статической ячейки состоит в том, что класс должен иметь тип UITableViewController, тогда как для динамических прототипов это может быть либо UITableViewController, либо (мое предпочтение большей гибкости) UIViewController с UITableView.
Подсказка - если это статическая таблица ячеек, и вы создаете только экран, полный разделов и строк, обязательно отключите прокрутку для таблицы.