Translate all vertices of all selected objects
This might not be the best solution, but being a developer I can't resist myself from posting this answer... :-)

Open console and type following:

# Move mesh vertices without affecting its origin
def move_by_amount(x, y, z, only_selected=True): # Default is True
    if only_selected:
        meshes = (obj.data for obj in bpy.context.selected_objects if obj.type == 'MESH')
    else:
        meshes = bpy.data.meshes
    for mesh in meshes: # We move selected/all meshes
        for vertex in mesh.vertices:
            vertex.co += Vector((x, y, z)) # See comments

# Replace with your own x, y, z coordinates
move_by_amount(10, -15, 5, True) # True to move only selected objects
move_by_amount(10, -15, 5, False) # False to move all objects
move_by_amount(10, -15, 5) # Default is True to move only selected objects


This has at least passed a basic test with few cubes without changing origins. Please test with your data. You can always undo if things go wrong! ;-)