Sleep accepts a number of milliseconds (therefore passing a decimal number to it is pointless). But since the script is updated once per frame, you need to take framerate of your game into account. For example, if your game runs at 60 frames per second (typical for LCD monitors), it means one frame takes 1000 / 60 = 16.666 milliseconds to be processed. That means using Sleep value lower than 16 has no effect, because the script cannot be updated faster than that anyway. Using low Sleep values makes your game speed dependent on framerate, which is a bad thing(tm).
The correct approach is to use the time elapsed since last frame (you can use Game.CurrentTime for that) and use it to multiply the movement speed. That way, if your game runs fast (frequent updates of the script), you will multiply the movement by a small number and you'll get smooth movement. If the game runs slowly, you'll be multiplying the movement by a larger number. You'll get jerkier movement, but the entity will be moving with constant speed, no matter what the game framerate is.