Isso é chamado de subdomínio curinga (no dns), que é tratado com o uso de regravação de URL.
Um subdomínio curinga se parece com isto:
*.domain.tld. IN A 1.2.3.4
Em seguida, você pode definir o apache para aceitar solicitações para qualquer subdomínio:
<VirtualHost 111.22.33.55>
DocumentRoot /www/subdomain
ServerName www.domain.tld
ServerAlias *.domain.tld
</VirtualHost>
Em seguida, você pode usar o mod_rewrite para redirecionar o tráfego em um desses subdomínios para uma subpasta ou uma string de consulta. Algo parecido com isto:
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domain.com [NC]
RewriteRule (.*) %2/$1 [L]