Accessing individual particle color
You can do this within a Cycles shader using the particle info node. One of it's outputs is "location", which is the world space location of the particle than an object is being cloned onto. By splitting this vector with the a Separate XYZ node, you can control a color ramp based on a particular axis:


In this example, I've used the Z-component of Particle Info > Location, modified with with math nodes, and fed it through a color ramp to colorize the spheres based on their height.