I think you are mixing name based virtual hosting with ip based virtual hosting. Try the below steps
(1) Put DNS entry so xyz.com -> 192.168.0.100
(2) So abc.com, def.com, ghi.com and xyz.com now point to .100 (server1) and the rest tuv.com & qrs.com point to .101 (server2).
(3) Create a new DNS entry ex: 123.com point to .101 (server2). This will be substitute for xyz.com
(4) Create virtual hosts abc.com, def.com ,ghi.com and xyz.com on server1 as below
Put below two lines somewhere under server1's apache main httpd.conf file and create a directory /etc/httpd/conf.d/virtual-hosts/ to hold virtual host config files.
(5) For each domain on server1, create virtual host config file under /etc/httpd/conf.d/virtual-hosts/abc.conf
DocumentRoot /<document root for abc>
<other required options goes here>
Create /etc/httpd/conf.d/virtual-hosts/def.conf,ghi.conf and xyz.conf as above. However for xyz.conf add below lines to facilitate proxy
ProxyPass / http://www.123.com
ProxyPassReverse / http://www.123.com
(6) Create appropriate virtual hosts (tuv.com, qrs.com & 123.com) as above points (4) & (5) on server2.
PS: I am assuming you don't want https as apache only supports 1 virtual host with named based virtual hosting.
Hope this helps.