All versions of the FlexGrid support an unbound mode, where you add rows and columns in code and the grid stores the data itself (there's no external data source). This sample shows how you can create and populate extra header rows, and how you can assign arbitrary (unbound) data to grid cells.