1) On each form OnCreate call, this works on 1.6.4:
Self.AutoAdjustLayout(lapAutoAdjustForDPI, 96, Screen.PixelsPerInch, Self.Width, ScaleX(Self.Width, 96));
And this should work in older lazarus that has AutoAdjustLayout implemented, I don't remember exactly from which release that was added. More or less parameters, but works the same.
2) And in Project Options depending on your Lazarus version enable High DPI settings (DPI Awareness).
I've added this to the wiki
http://wiki.lazarus.freepascal.org/High_DPI#High_DPI_in_older_LazarusPlease add the format tag someone is reading this. People still using 1.6.x and 1.8 is not ready yet.