Только на этой неделе сделал такое. Там всё просто, на самом деле:
1. Создаём компонент с нужным шаблоном и модуль для него.
2. С помощью RuntimeCompiler компилируем модуль и компонент.
3. Находим наш ComponentFactory в результатах компиляции (по идее в одном модуле может быть много компонентов - поэтому нужен поиск).
4. В нужном нам месте получаем ViewContainerRef и создаём в нём экземпляр компонента с помощью ComponentFactory из п. 3.
5 Созданный компонент можно инициализировать. Например, задать ему входные параметры.