What you are asking is possible, but perhaps not in the way you had hoped (at least, to the best of my knowledge). Here is the problem, and a potential solution:
First of all, you cannot define six arbitrary planes with a single projection matrix, because the matrix really has nothing to do with planes. The matrix simply moves a given point around based on some matrix multiplication -- it transforms it, rotates it, and performs a perspective projection on it (expanding or shrinking its distance from the focal point). Thus, a projection matrix behaves in a more or less "symmetrical" manner - it is only capable of defining rectangular prisms, where one face of that prism is (potentially) larger than the other, along the axis of projection (not sure what you would call that shape?).
Now, here is what you could perhaps do to achieve what you want to do:
Rather than focusing on the 6 planes, focus on the eight corners of the view frustum. Give each corner its own projection matrix. Then, in the vertex shader, compute the new point eight times, one for each matrix. Then do several linear interpolations. Lets say the corners are set up like this:
Front:
A B
C D
Back:
E F
G H
Based on the x position of the point (scaled from 0 to 1), do a linear interpolation between A and B, then C and D, then E and F, then G and H. (Lets represent this with a "." character. You will now have this:
A.B
C.D
E.F
G.H
Now take the y value (0 to 1) and do the following linear interpolation:
(A.B).(C.D)
(E.F).(G.H)
And last but not least:
((A.B).(C.D)).((E.F).(G.H)).
This will give you one final point. The interesting thing about this is that you could do some really crazy transformations, stuff that should not be physically possible. If you tied in some animation you could create really interesting effects, even though this is not the purpose of what you want this for.