You should be able to achieve this setup using a Samba server on the Linux host, and sharing the host's printer. There is no need to specifically make the printer visible on 'two networks' since the Samba Server will easily share the printer on any network local to the host, like any other network server.
You can install Samba from the repositories using Software Center or:
Then open the graphic Samba interface and set up the share for the printer. Give it a short share name and without spaces (Windows XP is limited in the length of a share name and have problem with spaces in the name).
sudo apt-get install samba
[By default this shared printer will be visible to all other computers on the local network. If you want to limit access only to the XP Virtual Machine, you can define that in the Samba utility (very limited) or in the configuration file (very comprehensive, you may need a text manual).]
When done, launch your XP virtual box and set up a network printer. You can also run the 'network printer search' feature, it should be able to find the shared host printer, and you will be good to go.
Hope that helps!