plot(5*c(1,0,-1,0), 5*c(0,1,0,-1) ,col="transparent") # set coordinate range
abline(h=-5:5); abline(v=-5:5) # the grid
polygon( 4.3*sin(seq(0,2*pi,length=100)),
4.3*cos(seq(0,2*pi,length=100)) ) # the circle
abline(h=0,v=0,lwd=2) # the axes
text( x=c( (1:4)-2.5,(1:6)-3.5, (1:8)-4.5, (1:8)-4.5, #offsets to center in cells
(1:8)-4.5, (1:8)-4.5, (1:6)-3.5, (1:4)-2.5 ),
y=c( rep(4,4), rep(3,6), rep(2,8), rep(1,8),
rep(0,8), rep(-1,8), rep(-2,6), rep(-3,4) )-0.5,
labels=1:52)

Suppressing the axis labels, the axis ticks, and removing the "overhang" is a simple matter of supplying the correct graphics parameters (for xaxs, yaxs, xaxt, yaxt, xlab and ylab) to the plot
function call. Perhaps:
..., , xaxs="i", yaxs="i", xaxt="n", yaxt="n", ylab="", xlab="")
Which would produce this: