When does the arp cache get emptied?
According to arp(4) on an OS X Lion system:


 The ARP cache is stored in the system routing table as dynamically-created host
 routes.  The route to a directly-attached Ethernet network is installed as a
 ``cloning'' route (one with the RTF_CLONING flag set), causing routes to individual
 hosts on that network to be created on demand.  These routes time out periodically
 (normally 20 minutes after validated; entries are not validated when not in use). 



You can manually manage the ARP table using the arp command.