In your R code, you have associated X1 and X2 with the appropiate colums of data during Import.
In Mathematica, you give LinearModelFit a list of triples. This is what the data looks like:
data={{1, 1, 0.909297}, {1, 2, 0.14112}, {1, 3, -0.756802}, {1,
4, -0.958924}, {1, 5, -0.279415}, {2, 1, 0.14112}, {2,
2, -0.756802}, {2, 3, -0.958924}, {2, 4, -0.279415}, {2, 5,
0.656987}, {3, 1, -0.756802}, {3, 2, -0.958924}, {3,
3, -0.279415}, {3, 4, 0.656987}, {3, 5, 0.989358}, {4,
1, -0.958924}, {4, 2, -0.279415}, {4, 3, 0.656987}, {4, 4,
0.989358}, {4, 5, 0.412118}, {5, 1, -0.279415}, {5, 2,
0.656987}, {5, 3, 0.989358}, {5, 4, 0.412118}, {5, 5, -0.544021}}
It is a list of triples. each triple represents the two independant and the dependant variable. So where it says {1, 1, 0.909297}, that means in your terms x1 is 1, x2 is 1, and Y is 0.909297. Before using LinearModelFit, manipulate your data so that it is in this format. Once you have done this, you can call LinearModelFit on it:
LinearModelFit[data, {x, y}, {x, y}]
Manipulating the data to get it into the right form requires some knowledge of Mathematica programming. Let's say that the data above came from an excel file and there was one colum for the X1 values, one for the X2 values, and one for the Y values. Running Import on the data may produce extra curly brackets like this:
Import["mydata.xls"]
{{{1., 1., 0.909297}, {1., 2., 0.14112}, {1., 3., -0.756802}, {1., 4., -0.958924}, {1., 5., -0.279415}, {2., 1., 0.14112}, {2., 2., -0.756802}, {2., 3., -0.958924}, {2., 4., -0.279415}, {2., 5., 0.656987}, {3., 1., -0.756802}, {3., 2., -0.958924}, {3., 3., -0.279415}, {3., 4., 0.656987}, {3., 5., 0.989358}, {4., 1., -0.958924}, {4., 2., -0.279415}, {4., 3., 0.656987}, {4., 4., 0.989358}, {4., 5., 0.412118}, {5., 1., -0.279415}, {5., 2., 0.656987}, {5., 3., 0.989358}, {5., 4., 0.412118}, {5., 5., -0.544021}}}
Run the First command to remove the extra brackets.
Another useful command is Transpose. This does exactly the same thing as a matrix transposition.