Update
Updated so that "1." prints as "1" ...
It looks like you are seeking a big labeled tick when the tick falls on 5 * Inc
and a small non-labeled tick otherwise (I may have mis-read your intentions).
If that is the case (you can probably figure out how to edit if this is not the case) try:
TickMark2[Min_, Max_, Inc_] :=
Table[
If[Round[i, 10 Inc] - i == 0,
{i, Round[i], .02},
If[Round[i, 5 Inc] - i == 0,
{i, i, .02},
{i, "", .01}
]
],
{i, Floor[Min], Ceiling[Max], Inc}
]
and then
xAxis = TickMark2[-2, 2, 0.1]
(* {{-2., -2, 0.02}, {-1.9, "", 0.01}, {-1.8, "", 0.01}, {-1.7,
"", 0.01}, {-1.6, "", 0.01}, {-1.5, -1.5, 0.02}, {-1.4, "",
0.01}, {-1.3, "", 0.01}, {-1.2, "", 0.01}, {-1.1, "",
0.01}, {-1., -1, 0.02}, {-0.9, "", 0.01}, {-0.8, "", 0.01}, {-0.7,
"", 0.01}, {-0.6, "", 0.01}, {-0.5, -0.5, 0.02}, {-0.4, "",
0.01}, {-0.3, "", 0.01}, {-0.2, "", 0.01}, {-0.1, "", 0.01}, {0., 0,
0.02}, {0.1, "", 0.01}, {0.2, "", 0.01}, {0.3, "", 0.01}, {0.4, "",
0.01}, {0.5, 0.5, 0.02}, {0.6, "", 0.01}, {0.7, "", 0.01}, {0.8,
"", 0.01}, {0.9, "", 0.01}, {1., 1, 0.02}, {1.1, "", 0.01}, {1.2,
"", 0.01}, {1.3, "", 0.01}, {1.4, "", 0.01}, {1.5, 1.5, 0.02}, {1.6,
"", 0.01}, {1.7, "", 0.01}, {1.8, "", 0.01}, {1.9, "", 0.01}, {2.,
2, 0.02}} *)
and
yAxis = TickMark2[0, 4, 0.1];
Plot[x^2, {x, -1, 1}, Ticks -> {xAxis, yAxis}, TicksStyle -> Black]

No harm in making the TicksStyle
for each tick but since here they are all Black
seems simpler to make a single statement to that effect.
Round
instead ofIntegerPart
$\endgroup$Round @ Table[10 i, {i, -2, 2, .1}]
toIntegerPart @ Table[10 i, {i, -2, 2, .1}]
. $\endgroup$