Hola,
En si PHP no tiene ninguna función para crear subdominios, mas creo que la forma de hacerlo con PHP es editando las Zonas DNS del Servidor de Nombres de Dominio y agregar la zona "nombreusuario.tudominio.com" de tipo "A" y que apunte hacia tu Apache, en donde también deberás crear un "VirtualHost" para el dominio recién creado.
Otra opción es que puedas crear una zona DNS de tipo "*.tudominio.com" y en el servidor apache también tener un VirtualHost de tipo "*.tudominio.com" y entonces poder usar un .htaccess con RewriteRule para identificar la url y así saber que ficheros cargar. En lugar del .htaccess también puedes hacerlo utilizando php para la identificación del dominio.
No se si te sirve de algo, espero que si
.
Saludos.