Apache: Client-IP-based DocumentRoot

You can do this with a RewriteRule preceded by a RewriteCond that checks the remote_addr (remember using % for the vars, not $:

<VirtualHost *:80>
  Servername somedomain.tld

  RewriteEngine On
  RewriteCond %{REMOTE_ADDR} 10.2.1.4
  RewriteRule ^(.*)$ /var/www/pages-1/$1

  RewriteCond %{REMOTE_ADDR} 10.3.0.
  RewriteRule ^(.*)$ /var/www/pages-2/$1

</VirtualHost>

It won't be possible to change the document root, but you can rewrite the URL based on the client IP, something like...(not tested)...

RewriteCond %{REMOTE_HOST} ^10\.3\.0\.
RewriteRule ^/(.*) /pages-2/$1 [P,L]

RewriteCond %{REMOTE_HOST} ^10\.2\.1\.4$
RewriteRule ^/(.*) /pages-1/$1 [P,L]

Although it might be simpler to use an external rewriting program if the number of IP addresses is very large.