This is usually a problem with Java itself.
The launcher is most likely using the correct amount of allocated RAM. However, the actual Java process is using more RAM, because it thinks it needs more than you gave the launcher.
If you go into your Java control Panel, select the Java tab. Under Runtime parameters, you can restrict Java to only use what you want it to use.