You can use particles to control your object's vertices, and induce Brownian motion in these particles:
Download blendfile here
To achieve this, you need to make sure every vertex of your particle controlled object is assigned a particle. These are the settings I've used for the example above:
You also need to turn off gravity in the Scene tab in the tools panel:
Then, once you have a particle per vertex, you need to run this code to make sure the vertices coordinates are linked to the particle locations:
def update_particles( scene ):
''' This function runs before every frame change, and it updates the cube's
vertices' coordiantes with the location values of its particles
cube = bpy.data.objects['Cube']
for vert, particle in zip( cube.data.vertices, cube.particle_systems.particles ):
vert.co = particle.location
# Add vertex --> particle function to frame change app handlers
bpy.app.handlers.frame_change_pre.append( update_particles )
This example isn't a direct solution for what you're aiming for, but rather a direction. To adapt it to your needs, you actually need to manipulate the lipid through some mesh skeleton (or you can rig it and control the pose bones' locations the same way I've manipulated the vertices). This would be easiest and most directly translatable if your lipids are actually simple wireframes with a Skin modifier (you'll need to make sure the Skin modifier is below the particle system modifier though).
Since your scene probably has a lot of molecules, it will likely be more feasible to write a script that automates the generation and setup of particle systems. You'll also need to include all these objects in the frame change handler function.
Not a trivial project, but not unattainable :)