Creating dynamic columns with TinyButStrong is simple but a bit delicate. It doesn't need any specific parameter. But you have to think to expand columns on every rows of the basic table using a different bloc for each row. Columns must be merged before rows.
In this example, the script creates a multiplication table with alternated row's color. You can change the number of columns and rows.
| X | [c0.key;block=td] |
| [r.$;block=tr] | [r.[c1.val;block=td]] |
| [r.$;block=tr] | [r.[c2.val;block=td]] |