Вы можете создать ячейку с помощью Interface Builder, но вы должны сделать ее объектом верхнего уровня, а не дочерним элементом табличного представления. Затем вы можете вернуть эту ячейку в функции tableView вашего контроллера: cellForRowAtIndexPath: function.
Обязательно предоставьте ячейке идентификатор в Интерфейсном Разработчике и затем используйте тот же идентификатор с dequeueReusableCellWithIdentifier: (см. Пример кода, как это работает - идея в том, ячейки используются повторно - ОС будет выделять только столько ячеек, сколько помещается на экране одновременно. Умный способ сэкономить память.)