Shadow mapping from raster data
In the QGIS/FOSS world, you can use the GRASS algorithm called r.sunmask.datetime from the Processing toolbox. You provide the date and time, and it creates a shadow mask.
Here's one, derived from Lidar data:-
In ArcGIS the tool would be:
Area Solar Radiation (Spatial Analyst > Solar Radiation)
You could also do it in QGIS with the GRASS tool r.sun
I used this tools to create several images along the day from which later I made a video. But now that I reread your question this may not be exactly what you want.
I think what you need is: r.sunmask.datetime or r.sunmask.position