Try this, and notice each of the subtle changes made to your code,
B = {{(y - 10)/100, 0, (10 - y)/100, 0, y/100, 0, -y/100, 0},
{0, (x - 10)/100, 0, -x/100, 0, x/100, 0, (10 - x)/100},
{(x-10)/100, (y-10)/100, -x/100, (10-y)/100, x/100, y/100, (10-x)/100, -y/100}};
M = {{10666.67, 2666.67, 0}, {2666.67, 10666.67, 0}, {0, 0, 4000}};
Q = Transpose[B].M.B;
Integrate[Q, {x, 0, 10}, {y, 0, 10}]
which returns this
{{4888.89, 1666.67, -2888.89, -333.333, -2444.45, -1666.67, 444.445, 333.332},
{1666.67, 4888.89, 333.332, 444.445, -1666.67, -2444.45, -333.333, -2888.89},
{-2888.89, 333.332, 4888.89, -1666.67, 444.445, -333.333, -2444.45, 1666.67},
{-333.333, 444.445, -1666.67, 4888.89, 333.332, -2888.89, 1666.67, -2444.45},
{-2444.45, -1666.67, 444.445, 333.332, 4888.89, 1666.67, -2888.89, -333.333},
{-1666.67, -2444.45, -333.333, -2888.89, 1666.67, 4888.89, 333.332, 444.445},
{444.445, -333.333, -2444.45, 1666.67, -2888.89, 333.332, 4888.89, -1666.67},
{333.332, -2888.89, 1666.67, -2444.45, -333.333, 444.445, -1666.67, 4888.89}}
Perhaps the documentation wasn't quite clear enough. Applying MatrixForm to an expression does make it perhaps cute to look at, but gives a result which is, roughly, no longer able to be used for any subsequent calculations. If you need cute and and subsequent calculations then you can insert an extra line like this
Print[MatrixForm[Q]];
which will not change the value of Q but will display a formatted result.
And, as with everything in Mathematica, there are always a dozen different ways of accomplishing the same thing. Pick one that you can remember and use without making too many mistakes and stick with it.