I believe that Anton's answer will work just fine, however I couldn't clearly figure out when the Java Service Wrapper's license changed to GPL and didn't want to risk any negative implications of that change for my use case.
I found a way to make this work using the current version of the Java Service Wrapper included in Mule 3.4.0, and thus not have any additional license implications with the JSW's change to GPL.
If you modify wrapper.conf to explicitly set the min and max memory settings to 0:
wrapper.java.initmemory=0
wrapper.java.maxmemory=0
Then you can pass the memory parameters directly via additional properties, also in wrapper.conf:
wrapper.java.additional.6=-Xmx8192m
wrapper.java.additional.7=-Xms4096m
With the initmemory and maxmemory explicitly set to zero, the wrapper will no longer pass its own memory parameters to the JVM first, and thus allow you to specify your own. Note that this does not work for maxPermGen - for some reason the JSW still specifies its own value for that.