I think you could do this by setting various properties of the controls on the subform like Visible, Left, Width, etc, but unless there are only a few columns I think keeping track of left positions of the controls is going to be a challenge. I played with this a little and in the attached database the checkboxes switch the textbox widths through the on click events of the checkboxes on the main form. This is a long way from want you want but maybe this will get you started.
I don't think you can do this easily before the subform opens. It's probably better to open the subform hidden (Visible = False) and then unhide it when you want the user to see it.
If you choose to do it this way please let us know how it goes. I'm going to have to do something like this but for a report which will have two options columns.