Not perfect, but with the plugin foo_run for foobar2000 you could easily launch a web search with your tags
(fb2k is to iTunes what firefox 3.5 is to IE 6...)
So, now that everything is installed, to launch a bm4djs.com search on artist & title with foo_run, add a new service with this path properties (in foobar2000 preferences > tools > run services):
http://www.bpm4djs.com/index.php?app_mode=search&search=true&site=1&sv_artist=$replace(%artist%, ,+)&sv_title=$replace(%title%, ,+)&sv_accuracy=tolerant&sv_genere=4&submit=Go
for album & title:
http://www.bpm4djs.com/index.php?app_mode=search&search=true&site=1&sv_title=$replace(%title%, ,+)&sv_album=$replace(%album%, ,+)&sv_accuracy=tolerant&sv_genere=4&submit=Go
for artist alone:
http://www.bpm4djs.com/index.php?app_mode=search&search=true&site=1&sv_artist=$replace(%artist%, ,+)&sv_accuracy=tolerant&sv_genere=4&submit=Go
for artist & bpm (if your bpm tag name is "BPM"):
http://www.bpm4djs.com/index.php?app_mode=search&search=true&site=1&sv_artist=$replace(%artist%, ,+)sv_bpm=%bpm%&sv_accuracy=tolerant&sv_genere=4&submit=Go
etc...
You could certainly tweak it better with the foobar2000's title formatting and a little study of the search url of bpm4dj or any other website...
And, cherry on the cake, foobar2000 recently got a BPM plugin, it's still in early stage but the dev looks motivated.
Best Answer
MP3tag would do it - using the filename to tag option, and using a partial path.
For example:
It's one of the situations that's in the MP3tag manual.