A cell can be a button and a field. Thus, it can dynamically display data and still perform a script when clicked. Also a button's label can be a merge field and the labels for buttons in a button bar can even be calculations.

For that matter, your "X" can be a graphic object with visibility controlled by a Hide Object When expression.

So the main heavy lifting is displaying your data in rows and columns. I'd research "cross tab" here in the forum. I'd probably pass on the webviewer option unless I knew how to make it interactive using Java scripting, but either a portal or repeating field based approach could be made to work using buttons or triggers.

Can you be more specific about what issues you see that I don't with making the layout "dynamic"? A button can be clicked to perform a script. The button can also display data from a field. The button can BE a field for that matter--so, as I posted before, I don't see any major issues there.

The cross tab report posts all cover several different approaches that can work. Even using an HTML table and a Web Viewer might be used though then you can't use buttons or script triggers to perform a script--you'd have to come up with Java Script in that case.

Portals or repeating fields that, via script or calculation "load" with data from your tables might be used here to produce the needed layout with buttons or script triggers used to perform the needed scripts to modify data. Note that any cross tab style report combines data from at least two tables, one for the rows and one for the columns. Multiple tables each providing data for different columns would also be possible.

Much of the detail work here depends on the tables and relationships that you have in place as the basis for your layout.

You can have a fixed number of columns, but change what appears in a given column leaving unneeded columns empty. You might look at "virtual list" for one approach, but portals and repeating fields can manage this as well.