You could write a user launch daemon which runs when a filesystem is mounted. The thread here http://forums.macosxhints.com/archive/index.php/t-89968.html should help you get started.
You'll need to write a launchd plist which runs a script when any filesystem is mounted. Your script should then check that the volume you're interested in has been mounted and then do whatever it needs to do.
Do you need this to run as root or as a user? That will determine whether your plist goes into /Library/LaunchDaemons or ~/Library/LaunchDaemons. If the latter, it will only run when the user is logged in.
UPDATE - emmby pointed out the URL is no longer valid. In summary, you need to use the StartOnMount key in your launch daemon. For example (copied from http://stuff-things.net/2015/03/18/backups-with-rsync-and-launchd/ ):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>net.stuff-things.backup-to-dropbox</string>
<key>ProgramArguments</key>
<array>
<string>/Users/spike/bin/backup-to-dropbox</string>
</array>
<key>StartOnMount</key>
<true/>
</dict>
</plist>