There is a way, but it's a pain. Create a shell script that calls Visual Studio Code and passes it the file path that Unity provides:
"/Applications/Visual Studio Code.app/Contents/MacOS/Electron" -r -g $1
exit 0
Then you need to make an .app from that shell script. I used a program called Platypus to make the .app. If you use Platypus make sure to check the 'Accepts Dropped Items` checkbox, it didn't work for me until I used this option.
Once you have the .app created you need to set that app as your External Editor in Unity.
Hopefully in the future Unity will allow custom arguments to be sent for OSX, not just Windows. Also it would be nice if Unity passed the line and column numbers to custom external editors, currently those details are only passed to certain Unity-recognized editors. There is really no reason I can think of that why they could not pass that information as additional arguments. Because that information isn't being passed that means you cannot configure this script to open up the file to line that an error might be on, which is a bummer.
Also, this entire answer would be unnecessary if the Visual Studio Code team would just add an option in the preferences to default to opening files in the existing window instead of defaulting to a new one. There are a couple of feature requests listed on their site for this currently, here's one: http://visualstudio.uservoice.com/forums/293070-visual-studio-code/suggestions/8740771-persistant-option-to-open-files-in-existing-window