Import sequence of obj files to multiple frames
As you are importing an object for each frame, you want to keyframe the visibility of each object so that it is only visible on the frame that it is made for.

You can use the following script to import each obj and keyframe it's visibility.

import bpy
scn = bpy.context.scene
for f in range(scn.frame_start, scn.frame_end):
    fpath = bpy.path.abspath('//sim_data_{}.obj'.format(f))
    bpy.ops.import_scene.obj(filepath=fpath)
    obj = bpy.context.selected_objects[0]
    # key as visible on the current frame
    obj.keyframe_insert('hide',frame=f)
    obj.keyframe_insert('hide_render',frame=f)
    # hide it
    obj.hide = True
    obj.hide_render = True
    # key as hidden on the previous frame
    obj.keyframe_insert('hide',frame=f-1)
    obj.keyframe_insert('hide_render',frame=f-1)
    # key as hidden on the next frame
    obj.keyframe_insert('hide',frame=f+1)
    obj.keyframe_insert('hide_render',frame=f+1)


If you have the option to export in .mdd or .pc2 format, you could look at using the mesh cache modifier.

Depending on how much the "particles" in the simulation deform, you may also want to look at exporting a location and size of each item per frame. This way you could just use the exported data to keyframe the location of each object.