I just looked at your code, and it's really hard to understand whats going on where you are dealing with byte arrays in the DataArrival event.

If you are downloading a file of length 108 bytes, this should ALL be contained in the first chunk of data recieved in the DataArrival event... So there might be a problem with your parsing algorithm

Why not hold the data which you get in the Winsock_DataArrival event in a string? This will make it A LOT easier to parse header info. from.

Also, you don't need to send all the header fields your sending at the moment. A header such as the following should work:
"GET *MYURI* HTTP/1.0" & Vbcrlf & Vbcrlf
Hope this helps
Laterz