It depends how and when you are getting the data. Do you know exactly what questions are going to be asked at design time? If so then you just add as many instances of your UserControl to your form as you needed and set their properties appropriately, e.g. Location and QuestionText. Note that QuestionText would be a property that you declared yourself.

If you are getting the question list at run-time then obviously you can't add the controls at design-time. In that case you'd get you question list from your database, text file or wherever, then loop through the list and add a UserControl instance for each one. Each time you created a control you'd set its Location and QuestionText and then add it to the form. Obviously the Location of each control would depend on the Size of the previous control. You'd take the Bottom of the previous control, add a margin and that would be the Top of the next.