How to Launch Multiple Applications Together?
Save a plist like this as ~/Library/LaunchAgents/some.label.plist:

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;
&lt;plist version="1.0"&gt;
&lt;dict&gt;
  &lt;key&gt;Label&lt;/key&gt;
  &lt;string&gt;some.label&lt;/string&gt;
  &lt;key&gt;ProgramArguments&lt;/key&gt;
  &lt;array&gt;
    &lt;string&gt;bash&lt;/string&gt;
    &lt;string&gt;-c&lt;/string&gt;
    &lt;string&gt;if pgrep -x iTunes;then open -jga Some\ Application;open -jga Another\ Application;fi&lt;/string&gt;
  &lt;/array&gt;
  &lt;key&gt;WatchPaths&lt;/key&gt;
  &lt;string&gt;~/Library/Preferences/com.apple.iTunes.plist&lt;/string&gt;
&lt;/dict&gt;
&lt;/plist&gt;


Then run launchctl load ~/Library/LaunchAgents/some.label.plist.

~/Library/Preferences/com.apple.iTunes.plist seems to be modified every time iTunes is opened. The program will be run every time ~/Library/Preferences/com.apple.iTunes.plist is modified (and there's at least 10 seconds from the last run), but it's probably better than running the program for example every 5 seconds.

For most applications, open -jg opens the application hidden and without making it frontmost. For some applications like TextEdit, it opens a new visible window if the application is open but has no windows, but you can use pgrep -x TextEdit||open -jga TextEdit or lsappinfo launch nofront=true launchandhide=true /Applications/TextEdit.app instead.