Guys, seriously. Don't be dense. There are only a few possible sets of assumptions.
Assumptions 1: constant space required, stream can only be read once. This is provably impossible, and the
proof was given right near the beginning of the thread.
Assumptions 2: constant space required, stream can be read more than once. This is trivial: read the stream twice, calculating the average the first time and counting the above-average values the second time.
Assumptions 3: constant space not required (but we can't use an explicit variable-size data structure), stream can only be read once. This is trivial (well, almost): recurse to put all the values onto the program stack, summing them on the way up; at the end of stream, determine the average (you will have passed the current sum and recursion depth all the way up), and then return all the way back, each time passing back a structure holding just the average (so you can keep track of it) and the number of above-average values found so far (such a structure surely does not qualify as "an array, list, vector, stack, etc."; we could alternately put the average value into a global variable once known).
Assumptions 4: constant space not required (but we can't use an explicit variable-size data structure), stream can be read more than once. This is trivial: Use either method 2 or method 3.