The problem can be summed up with the question: What makes a bitmap?
The answer is that a bitmap contains (within the stream) a header record followed by pixel data. For full details, see:
http://www.wotsit.org/search.asp?s=bmp
When you contruct "a bitmap from a stream", the stream itself already contains the header and pixel - you dont "construct" as such - its already constructed and youre just reading the details from the stream (same as you would from a file).
In this case, you are not supplying a bitmap stream, nor a stream of bitmap data - you are supplying raw binary data (as noted in your most recent comment)
What code are you using to convert from RAW file to a Bitmap? You could probably use very similar code, just without saving to disk first.
But as far as your original statement, "Can someone help me to understand how a Bitmap which is constructed from a Stream gets its width and height?" goes - the stream must already contain all the information required, as it would if reading from a file.
You may be able to do something with Image.RawFormat, but I suspect you already know how to do the conversion (which is the hard bit)