I've worked a lot with LispWorks and tuning the gc had the same method of programmatically calling a full GC after every N operations. We also found setting the gc threshold to high amount helped a bunch.
Supposedly they have a concurrent GC in the works but I haven't played with it.