RE: dynamically add fields to a From Grid Control
I've done something like what I think you're suggesting. It's never pretty.
Basically, I created a temp table with a series of numbered fields, i.e. Item1, Text1, Item2, Text2, Item3, Text3, etc. The problem up front with this approach is that you just have to decide on a maximum number of fields to support and live with it. Don't even think about adding fields to a temp table during runtime.
Adding the temp table as a data source to your form is easy. Deciding how many of those fields to hide or show is also pretty easy. You'll probably add them all as fields in the grid up front, and just change .visible() as needed on each field in response to your "show" checkbox.
Populating the data is a whole other issue. Pivoting rows into columns is just coding.
It's certainly possible to actually add fields to a grid at runtime, and they can be bound to fields or data methods. I don't see the advantage of adding them at runtime when it's just easier to show/hide them dynamically. I'm also not sure how you could add a variable number of controls to the grid bound to a display method, since you can't specify parameters for the data method. You could do it with many different data methods (display methods), but it's messy.