Is this what you want?
list2 = list[[All, 1]];
Legended[ArrayPlot[list2~Partition~5,
ColorFunction -> "WatermelonColors", FrameTicks -> True],
BarLegend[{"WatermelonColors", {-1, 1}}]]

Edit:
list = Table[x y, {x, -1, 1, 0.1}, {y, -1, 1, 0.1}];
Legended[ArrayPlot[list, ColorFunction -> "WatermelonColors",
Frame -> False, Mesh -> True, MeshStyle -> Black,
DataReversed -> True], BarLegend[{"WatermelonColors", {-1, 1}}]]

Edit 2
list = Table[x y, {x, -1, 1, 2/19}, {y, -1, 1, 2/19}];
ArrayPlot[list, ColorFunction -> "BlueGreenYellow", Frame -> False,
Mesh -> True, MeshStyle -> Black, DataReversed -> True,
PlotLegends -> Automatic]

Edit 3 You can remove the GridLines
list = Table[x y, {x, -1, 1, 2/19}, {y, -1, 1, 2/19}]; p2 =
ArrayPlot[list, ColorFunction -> "BlueGreenYellow", Mesh -> True,
MeshStyle -> Black, ImagePadding -> None, DataReversed -> True,
Frame -> False, ImageSize -> 95];
p1 = ListPlot[{{0, 0}}, Frame -> True, Axes -> False,
PlotRange -> {{-4, 4.4}, {-2, 2.4}}, ImageSize -> 400,
AspectRatio -> Full,
FrameTicks -> {{{-2, -1, 0, 1, 2}, None}, {{-4, -2, 0, 2, 4},
None}}, GridLines -> {{-1, 0, 1}, {-1, 0, 1}}];
Legended[Overlay[{p1, p2}, Alignment -> Center],
BarLegend[{"BlueGreenYellow", {-1, 1}}, LegendMarkerSize -> 200,
Ticks -> {-1, -0.5, 0, 0.5, 1}]]

Edit 4 Here is better and perfect figure.(I assume you don't insist black mesh on figure). I got the idea from here
data = Reverse@Table[x y, {x, -1, 1, 2/19}, {y, -1, 1, 2/19}];
renderImage[array_?MatrixQ, cf_, q_Integer: 2048,
opts : OptionsPattern[Image]] :=
Module[{tbl},
tbl = List @@@ Array[cf, q, {0`, 1`}] // N //
Developer`ToPackedArray;
Image[tbl[[# + 1]] & /@ Round[(q - 1`) array], opts]]
img = renderImage[Rescale[data], ColorData["BlueGreenYellow"]];
Legended[Graphics[Inset[img, {-1, -1}, {0, 0}, {2, 2}], Axes -> True,
Frame -> True,
FrameTicks -> {{{-2, -1, 0, 1, 2}, None}, {{-4, -2, 0, 2, 4},
None}}, PlotRange -> {{-4, 4}, {-2, 2}},
GridLines -> {{-1, 0, 1}, {-1, 0, 1}}],
BarLegend[{"BlueGreenYellow", {-1, 1}}, LegendMarkerSize -> 200,
Ticks -> {-1, -0.5, 0, 0.5, 1}]]


Here how you can add Mesh on plot.
data = Table[{x, y}, {x, -1, 1, 2/19}, {y, -1, 1, 2/19}];
grid = Extract[#, {{1}, {-1}}] & /@ data;
grid2 = Extract[#, {{1}, {-1}}] & /@ Transpose@data;
Legended[Graphics[{Inset[img, {-1, -1}, {0, 0}, {2, 2}], Black,
Opacity@1, Line[#] & /@ grid1, Line[#] & /@ grid2}, Frame -> True,
FrameTicks -> {{{-2, -1, 0, 1, 2}, None}, {{-4, -2, 0, 2, 4},
None}}, PlotRange -> {{-4, 4}, {-2, 2}}, AspectRatio -> 1/2],
BarLegend[{"BlueGreenYellow", {-1, 1}}, LegendMarkerSize -> 200,
Ticks -> {-1, -0.5, 0, 0.5, 1}]]

Can someone explain why this does not work well? img should fit [-1,1]x[-1,1]
data = Table[x y, {x, -1, 1, 2/19}, {y, -1, 1, 2/19}];
img = ArrayPlot[data, ColorFunction -> "BlueGreenYellow",
Mesh -> True, MeshStyle -> Black, DataReversed -> True,
ImageMargins -> 0, ImagePadding -> None,
ImageSize -> 270]; Graphics[Inset[img, {-1, -1}, {0, 0}, {2, 2}],
Axes -> True, Frame -> True, PlotRange -> {{-4, 4}, {-2, 2}},
FrameTicks -> {{{-2, -1, 0, 1, 2}, None}, {{-4, -2, 0, 2, 4}, None}},
GridLines -> {{-1, 0, 1}, {-1, 0, 1}}, AspectRatio -> Automatic]
