I have a Array modifier on an object, and would like to rotate each individual copy of the original object, around it's own origin; without applying the Array modifier, is this possible?
Modifiers operate on mesh data, so the array modifier must take an initial mesh and output a resulting mesh which another modifier can operate on.
This means that the array modifier copies every vertex, edge, and face in your initial mesh for every duplicate it creates (storing the same data multiple times). Also see Applying Array Modifier - Still instance? and What techniques have been used to repeat geometry or other detail to the infinite horizon?
TL;DR: The array modifier doesn't operate on an object level, so there are no "objects" to rotate without applying the modifier and separating loose parts.
Essentially modifiers are stuck with working in edit mode.
The closest you can get is destructively rotating the initial mesh, however this will change the dimensions of the object (unless the object is a sphere), potentially giving unwanted results if you are using Relative Offset:
Seen on Blender.org:
Don't use the array modifier.
Instead, create a mesh, like the grid for instance and use that to dupli-vert the cube. So the deployment mesh is what will control the array size and shape. Then all the cubes deployed by the dupli-vert will animate from the object data level, like you want, instead of the object level like the array modifer.