Загрузите образец кода DragNDropOutlineView от Apple и посмотрите. Он содержит все функции, которые вы ищете.
Что касается добавления ячеек, подумайте об этом больше с точки зрения добавления столбцов (столбец предназначен для размещения одной ячейки одного типа). Если вам нужно больше элементов управления в каждой строке, добавьте новый столбец и установите тип его ячейки. Оба эти действия могут быть легко выполнены в Интерфейсном Разработчике. Вы можете выбрать таблицу и увеличить количество ее столбцов на единицу (появится новый столбец), переместить столбец туда, куда вам нужно (в начало), и перетащить ячейку кнопки, настроенную для флажка (есть флажок ячейка *). 1006 * в палитре IB) в тело столбца и его прототип "ячейки данных". Вот и все. Просто подключите его, как обычно (NSTableViewDataSource или Cocoa Bindings), и все готово.