Define what you mean by "should I place them on the page".
Do you mean Drag'n'Drop them onto the aspx page? If you did that, you have to copies of each one -- one set created by the page, and a second created by you which replace the first set.
How do the number of checkboxes vary ("20 (+/- 10)")? Are they options coming from a database? Are they fixed, but you just don't know how many yet?
One funkey aspect of ControlCollection, is that a control can only be in one at a time. If you were to try:
ControlCollection cool = new ControlCollection ();
coll.Add(Page.Controls[0]);
It will be added to coll, but it will automatically be removed from Page.Controls.
EDITED: (responding to comment)
On your codebehind, create the Checkboxes manually (It's been a while since I wrote WebForm code, so I'm voguing a bit here), and place the in an array (an array shouldn't have the problem I mentioned about ControlCollection)
CheckBox[] boxes = new Checkbox[20];
for(int i =0; i< 20; ++i)
{
boxes[i] = new CheckBox();
// do stuff here
Page.Controls.Add(boxes[i]);
}
Now for the "do stuff here", we need to get them in the right place. There are a number of ways. We can build a <table>
around them; we can have <asp:placeholder>
controls in the aspx which we add them too; we can set the CSS style position attributes.