Для того, чтобы выполнить такое "простое" действие, как создание домена - нужно:
1. Обладать доступом к DNS, а именно указать в DNS, что будет такой поддомен и ссылаться он будет на такой то IP. Либо решить этот вопрос маской * и на уровне приложения уже отсекать "невалидные" поддомены.
2. Обладать доступом к nginx/apache. Ведь даже если Вы добавили wildcard в DNS и все поддомены отправляете на главный сайт - нужно либо настроить nginx/apache - чтобы понимали эту кашу, либо уже из приложения править конфиги этих служб.
3. Окей, у нас есть DNS, настроен на прослушку этого поддомена вэб-сервер, теперь остается уже на уровне логики приложения смотреть, что ж к нам пришло и по какому домену и решать что нам за контент отдать.
А по поводу создания инфоблоков, либо элементов в них - есть eventListener-ы, по которым можно перехватить это событие и на него отреагировать соответствующим образом.