Snapshot replication - How to detect when a snapshot has arrived on the Subscriber from the Subscriber DB
Change it to a pull subscription, and watch for the SQL Agent job to stop.  When it stops the snapshot has been applied.  Or you could get really creative and setup a linked server to the distributor if you want to keep it as a pull subscription and watch for the job on the distributor to stop.