This is happening because you have an NIntegrate within another NIntegrate. The inner one has the variable y as a nonnumerical parameter.
You want to use a single NIntegrate with both integration variables -- x and y -- as iterators. This is the form you want:
NIntegrate[f, {x, xmin, xmax}, {y, ymin, ymax}]
or
NIntegrate[f, {y, ymin, ymax}, {x, xmin, xmax}]
Also you have not given A a value.
Here is your expression with these things fixed.:
In[6]:=
x0 = 10;
y0 = 10;
z0 = 10;
a = 20;
A = 1;
In[12]:=
NIntegrate[((-((8 a A x y)/((a^2 - 2 a x + x^2 + y^2) (a^2 + 2 a x +
x^2 + y^2))))*z0)/(a*
A*((x0 - x)^2 + (y0 - y)^2 + z0^2)^(3/2)), {x, -1000,
1000}, {y, -1000, 1000}]
Out[12]= -0.00972789