There may not be a straightforward to do what is being asked for. But, while the contour plot is active, if the 'contour' command is executed with same arguments and an additional argument specifying the number of contour levels the same plot gets updated to reflect the specified number of contours.
x = -2:0.2:2;
y = -2:0.2:3;
[X,Y] = meshgrid(x,y);
Z = X.*exp(-X.^2-Y.^2);
figure
contour(X,Y,Z)
Now if we try:
contour(X,Y,Z,8)
% Plot gets updated to show 8 contours
Using GUIDE or App Designer, one can have an interface in the GUI to change the number of levels and use the above mentioned command in the callback to do what is being asked for.
Hope this helps!