Files to look at:

Runtime table creation best practices (iterative approach)

This example demonstrates the differences in runtime table creation between the newest XtraReports version and its prior versions.

Please note that it is always required to call the XRTable.BeginInit and XRTable.EndInit methods if you modify XRTable.Rows and XRTableRow.Cells collections at runtime.

As for the height of a table, explicitly specify it only if cells' content is not expected to stretch the cells (e.g. this may happen when their CanGrow property is enabled).

See also:
How to convert an XtraGrid to an XtraReport at runtime