реализуют эти методы UITableView-делегата:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
Вы можете даже смешать пользовательские и стандартные заголовки, если вы вернете nil в tableView: viewForHeaderInSection: tableView будет использовать заголовок стандартного раздела, если вы его укажете.