Is there any way to make hair particles follow the z axis?
I don't think that perfectly vertical grow would seem "natural", but if you need that, you can set Z axis velocity, using advanced settings:



Otherwise, you could also use "particle edit" mode to "comb" your grass as you wish:



then you comb "hair"



to get this, for example:



If you manually edit particles, your particle system gets some what locked, after. You can always revert those edit, use the "free edit" button on the particle settings, then.

Finally, and otherwise, you could use "a curve guide": https://docs.blender.org/manual/en/dev/physics/force_fields/types/curve_guide.html

That needs another bezier object with force field "curve guide" set, and then activate a force field effect of the same type on your hair object. Like this:



Remember, you could also use more than one particle systems, so to get some variation, and each can be using different methods and settings...