I found a way to lower memory clocks with MSI Afterburner, even when this feature is disabled in AMD driver, so, we need:
1. Run MSI Afterburner and check that "Unofficial Overclocking Mode" is currently DISABLED
2. Set desired memory clock setting (for each card if they're different in your rig) and hit apply, save these settings at the first profile and check "apply overclocking at system startup" box. Now, if you run GPU-Z, you'll see lowered clocks at the "Graphics Card" tab, but if you check "Sensors" tab, you'll see that memory clocks remain the same, nothing has been lowered actually.
3. OK, go back to MSI Afterburner, go to Settings and ENABLE "Unofficial Overclocking Mode" without PowerPlay feature and hit OK. Now your system should restart automatically.
4. When everything booted up, you should accept terms and agreement in the popup window, and then you can check with GPU-Z, your memory clocks are really lowered now to the numbers you've entered with Afterburner earlier and will not raise to factory settings until you want it.
5. ATTENTION! After these manipulations you won't be able to do any over/downclocking with MSI Afterburner actually, if you want so, you'll need to disable Unofficial Overclocking Mode and restart your system, but in this case memory downclocking will be lost.
Worked on each of my rigs (have 12 of them), each of them have the same card models onboard (but different manufacturers), especially tried on 290x and 390x.
Gald if this will help somebody.
wow nice info, did you gain lowered temps and power usage by doing this ? what mem clocks do you have now for your 290x and 390x cards ? and what is the new hash rate