Not sure if anything can be done about the memory limit, but I stumbled apon this option recently which you may want to try in the additional java options part of advanced settings:
This should smooth out the lag spikes so to say, as the garbage collector will run in parallel to minecraft. That said, I haven't really had any opportunity to test it.