How to set a custom center point (pivot point) for the "copy location constraint" (include a simulation video in content)
You can use drivers as constraints: in your example the cursor is at 0,0,4. So X and Y can be managed by the copy location (inverted) constraint. Your new Z value has to be 4 - (Zold - 4). So you can set the Z driver as 8 - Z. 

The same can be done with different X and Y values.



Another way can be set the copy location constraint in local space (instead of world space), check the offset option, then move both meshes to the pivot point (Shift S - selection to cursor).