Depende do software de servidor de nomes que você está usando. No BIND, você criaria várias visualizações. A visualização corresponderia ao endereço IP de origem da consulta. Em cada exibição, você teria uma configuração diferente - tudo em uma instância do servidor.
Como alternativa, se o IP de origem for sempre o mesmo, você poderá fazer com que o servidor de nomes ouça em vários endereços IP e faça com que suas exibições coincidam com o IP do servidor de nomes que recebeu a consulta. Você pode configurar cada "empresa" para enviar consultas para um IP diferente.
O que você não pode fazer é corresponder diretamente com base no que a fonte da consulta acha que seu nome de host é.
Com base nos comentários de acompanhamento, parece que você estava confiando nos clientes para anexar um domínio específico à consulta em si. Você pode fazer algo semelhante no BIND também, simplesmente criando zonas que incluam esse domínio.
Ou seja, crie uma zona para 1.2.0.192.in-addr.arpa.foo.example.com. e outra zona para 1.2.0.192.in-addr.arpa.bar.example.net. Isso não funcionará, no entanto, se um desses clientes não anexar o nome do domínio às suas consultas. Portanto, você não deve confiar nesse método, mesmo que pareça estar funcionando na maioria das vezes quando você estava usando um servidor de nomes baseado no Windows.
Dito isto, a melhor abordagem seria simplesmente usar endereços IP únicos!