I also faced the similar issue once.
My requirement were,
1) To create a tableview which has a header and cells.
2) The header will have 3 labels, under those labels the cell will hold the corresponding data for the respective labels in the header.
To achieve above requirement I framed my labels in header and based on the labels position and size in the header I reframed the cell's labels according to header labels.
I implemented the above thing in TableView's delegate method - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
and reframed each cell's labels based on the header's position and size inside it.
For example -
-(void) tableView:(UITableView *) tableView willDisplayCell:(UITableViewCell *) cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
// customize the cell just before it will be displayed
// access section header
UIView *sectionHeader = [tableView headerViewForSection:indexPath.section];
// access section header label
UILabel *headerLeftLabel = (UILabel *)[sectionHeader viewWithTag:HEADER_LABEL_TAG];
// access cell's corresponding label which is to be aligned as the header's above label
UILabel *leftCellLabel = (UILabel *)[cell.contentView viewWithTag:CELL_LABEL_TAG];
// align/ reframe the cells label with the corresponding label in the header
[leftCellLabel setFrame: headerLeftLabel.frame];
// similar for other labels
}