I'll suggest you to create a user control which has the groupbox you shown with the child controls.
Let's call it as MyUserControl
so when you create instance of MyUserControl
you get all controls with the groupbox.
To show the controls without overlapping each other you can use FlowLayoutPanel
which arranges the controls automatically. Then in button click code you'd just write
void addButton_Click(object sender, EventArgs e)
{
int contaniners = 0;
int.TryParse(txtContainers.Text, out contaniners);
for (int i = 0; i < contaniners; i++)
{
flowLayoutPanel.Controls.Add(new MyUserControl());
}
}