Você não pode recusar conexões, pois o nome do host (ou IP) que o usuário está tentando usar como seu host HTTP não é conhecido pelo servidor até que o cliente realmente envie uma solicitação HTTP. O ouvinte TCP está sempre ligado ao endereço IP.
Uma resposta de erro HTTP seria aceitável?
<VirtualHost *:80>
ServerName catchall
<Location />
Order allow,deny
Deny from all
</Location>
</VirtualHost>
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/
<Directory /var/www/>
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>