This is actually pretty easy. Create a new subclass of NSTableRowView and override the drawRect: method. Better to always call [super drawRect: dirtyRect]; at the beginning. Then you have the self.isGroupRow property. If so, just draw your own group of lines.
You can load in a custom Row in a Table View delegate using the tableView: rowViewForRow: method. Just return a copy of it right there.
source
share