The first four bytes are FourCC, namely,0x20534444. Then comes the header, whose length is 124. Consequently, before reading the actual image data, you need to read 128 bytes to verify the data and read width, heights, and flags from the header. More header details can be found at MSDN.
DXT1, as I said, is a simple image compression using R5G6B5 format to store 3 bytes colors (it's said human eyes are more sensitive to green so people give green one more bit to be more accurate). In DirectX11, DTX1 is also called BC1 because the image is splitted into many small 4x4 blocks.
The original length of a 4x4 block is 3*16 = 48 (in DXT1 usually alpha is excluded). After compression, the length becomes 2*2+16*2/8 = 8. It means there are two R5G6B5 colors, c0 and c3, and a lookup table which using two bits to indicate the color needed to fill in. Another two colors, c1, and c2 are generated linearly form c0 and c3. If c0 > c3, then c1 = 2 * c0 /3 + c3 / 3; c2 = c0/3 + 2* c3 /3; else then c1 = 2 * c3 /3 + c0; c2 = 2*c0/3 + c3/3.
The sequence of colors is from left to right first in pixels, both in reading colors in blocks and reading blocks.
Here is the code example in C# about how to read and render it into Bitmap quickly.
Read DTX1 Image: