It is possible to redirect all but a given IP, you can add a condition to your redirect for example:
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com$ [NC]
RewriteCond %{REMOTE_ADDR} !^xxx\.xxx\.xxx\.xxx$
RewriteRule ^ http://newdomain.com%{REQUEST_URI} [R=301,L]
For multiple IP's:
RewriteCond %{REMOTE_ADDR} !^xxx\.xxx\.xxx\.xxx$
RewriteCond %{REMOTE_ADDR} !^xxx\.xxx\.xxx\.xxx$
RewriteCond %{REMOTE_ADDR} !^xxx\.xxx\.xxx\.xxx$
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com$ [NC]
RewriteRule ^ http://newdomain.com%{REQUEST_URI} [R=301,L]
Or if the IPs have the same block 192.168.0.1, 192.168.0.2, 192.168.0.3:
RewriteCond %{REMOTE_ADDR} !^xxx\.xxx\.xxx\.
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com$ [NC]
RewriteRule ^ http://newdomain.com%{REQUEST_URI} [R=301,L]
Change xxx\.xxx\.xxx\.xxx
to your client IP.
However this would give you a few issues, for instance:
you client could have cached the redirect already, so you would need to ask him to use a different browser temporary or clear his cache (which doesn't always work).
If you have deleted the old rules it possible had on the .htaccess it would not work as expected.
if your client have dynamic IP you would need to change that every time he tries to access it.
There is probably more but this are the most common.