Looks like ToeplitzMatrix
can be useful for this case:
ToeplitzMatrix[{v1, v2, v3, v4, -v3, -v2}]
{{ v1, v2, v3, v4, -v3, -v2},
{ v2, v1, v2, v3, v4, -v3},
{ v3, v2, v1, v2, v3, v4},
{ v4, v3, v2, v1, v2, v3},
{-v3, v4, v3, v2, v1, v2},
{-v2, -v3, v4, v3, v2, v1}}
There is also an undocumented option "ReflectedNegation"
for ArrayPad
which can help to generate the reflected input array i.e.:
v = {v1, v2, v3, v4};
ArrayPad[v, {0, 2}, "ReflectedNegation"]
{v1, v2, v3, v4, -v3, -v2}
Thus, the full command will be:
ToeplitzMatrix[ArrayPad[v, {0, 2}, "ReflectedNegation"]]