Matrices dinámicas de controles.
Lo que quieres hacer es agregar elementos a una matriz dinámica (en este caso a una colección). Es lo mismo. Si le echas un vistazo al tema de las matrices dinámicas, puedes usar la misma técnica que usas para cambiar la dimensión de una matriz en tiempo de ejecución, para cambiar la dimensión de la colección Forms también en tiempo de ejecución. La colección Forms es como una matriz de formularios, si en tiempo de ejecución creas una "instancia" de un formulario (una copia de ese formulario) estás aumentando el número de elementos de la colección Forms. Lo que sí es necesario es que el formulario que quieres crear ya exista en tu proyecto. Si esto no es posible, y lo que quieres es generarlo desde cero, tendrás que tener disponibles, al menos todos los controles que vayas a querer utilizar para generar ese formulario.