There’s a few ways to do this.
1- if you set a face to billboard (texFace settings, in edit mode) it should behave like this, as long as it remains oriented along the Z axis. I’m not sure this works in glsl mode, I haven’t tried it.
For a version in which you get better control, probably at the cost of some efficiency (I haven’t benchmarked) you could use python, get the vector from the object to the camera, and use alignAxisToVect() with which ever axis the face’s normal points along to, well, align the axis to the vector. After this, align the Z axis to the global Z (or any other angle you want) and it should work out.
The advantage of this method is you can rotate the object, so grass that grows sideways whould billboard correctly (I dunno if you have any desire to do this, it’s be more readily useful in something like a lightsaber blade to simulate volume in an object that rotates a lot)
2- in the same place as the billboard option is, you can instead set the face to halo. This means it will face the camera at all times, as long as the face was oriented correctly in the first place (I believe it’s along the +X? experiment to find out)
Keep in mind that halo, as well as billboarding, rotates around the object center, not the faces center. To have a munch of seperate planes with leaves set to halo, you need each set to be their own object. If you parent them to the tree and make them all one group, you can add the group as if it were a single object. This brings me to 3- if you append a group from your source blend and use dupligroups (or just use dupligroups, if your tree is already in the correct blend) for every vertex on the dupligrouped object another tree whould pop up. Quite handy, really. If you keep the tree in a separate blend and append it in, you can use it in multiple blends and any change made to the source will show up in all the appended versions.