Intra-pair length matching, correct impedance (which depends on design topology and used memory controller), solid reference planes.
Basically you want to minimize signal integrity issues as much as possible, while still maintaining design specs.
Also in memory buses it's also important to match data and control signals in relation to each other, so your data will arrive in correct setup/hold windows.
For particular examples you can take a look of DDR3 implementations using Altera or Xilinx FPGA's.