There are a number of possible options here.
http://askubuntu.com/questions/393400/is-it-possible-to-have-two-different-dpi-configurations-for-two-different-screenhttps://wiki.archlinux.org/index.php/multiheadIt
should also be possible to use xrandr to set the display's DPI independently. However, the key here is going to be experimentation.
Edit:
I've just had some success with this for a 1920x1080 + 1280x1024 setup:
xrandr --output VGA1 --auto --right-of LVDS1 --scale 1.25x1.25
though currently the mouse cursor is limited to the original "virtual" screen dimensions (i.e. I can't get all the way right+down).
Edit 2:
This is a nice trick for single displays. I haven't yet got it working correctly on a dual-head setup though:
xrandr --output LVDS1 --scale-from 1600x900 --panning 1600x900
This gives me extra space (though a little blurry) on my X230's 1366x768 screen.
Edit 3:
OK, some success. This is for a laptop with 1920x1080 screen (which I want to keep native) and a 1600x1200 external monitor which I want to scale up to 1920x1440:
xrandr --output HDMI1 --scale-from 1920x1440 --panning 1920x1440+1920+0 --fb 3840x1440 --right-of LVDS1
So, walking through the parameters:
--output HDMI1 is the connection for the external monitor.
--scale-from 1920x1440 is the exact scaled resolution.
--panning 1920x1440+1920+0 allows the mouse to move over the full screen area, and offsets it by the x-resolution of the other display
--fb 3840x1440 sets the size of the "virtual" desktop. This is the sum of the native LVDS1 and scaled HDMI1 widths, and the height of the largest display (the scaled HDMI1).
--right-of LVDS1 places the external monitor to the right of the laptop.
Some tweaks you may want:
Use --scale instead of --scale-from. For your hiDPI display it's probably easier to set this to --scale 0.5x0.5.
Use --pos XxY instead of --right-of. This allows much better control of the position of the displays.
This drawback of this approach at the moment is that there is an hidden but active area of 360 pixels "below" the laptop screen; I assume this is because I'm overriding the virtual desktop size. There might be a way to fix this.