My problem is, I would like to define another attribute per vertex which is not part of the fixed function pipeline.
How could I do this? I know, I could just abuse one of the other pre-defined attributes like "glSecondaryColorPointer" but if possible I would rather define my own attribute which I can add to my vertex data.

My problem is, I would like to define another attribute per vertex which is not part of the fixed function pipeline.
How could I do this?

You define the attribute in the vertex shader, as a global variable with an "in" qualifier. You can optionally use a layout qualifier to specify the index, or use glGetAttribLocation() in the application. The data for the attribute is provided using glVertexAttribPointer().

Be warned: the aliasing of generic attribute locations to legacy built-in attribute locations is undefined. So if you use a layout qualifier (or glBindAttribLocation) it is your responsibility to carefully choose a location that will not collide (see ARB_vertex_program, circa 2002, Table X.1, "Generic and Conventional Vertex Attribute Mappings".)

Generally, it is simpler if you convert everything to generic attributes.