AFAIK, you *cannot* achieve what you want if the floating element is not defined directly above the concerned paragraph.
I just tried with the float at the beginning of the document (and with a positive top margin) and the whole space above the space (the said margin) is left blank. I also tried with the float at the bottom and a negative margin, but the text keeps wrapping around the position the float would be without the margin (same thing if you use a position: relative).
The only way I can imagine now, is some scripting to move the float at the wanted position in the DOM, but that is a whole another story (and would only work with JavaScript allowed).
Note : a "float: left/right" CSS rule implicitly defines a block bounding box. There is no need to specify "display: block" (it can even be helpful to specify "display: inline; position: relative;" to circumvent some IE6/IE7 margin bugs on floats, even if it should have no effect at all)
EDIT : I think you can achieve what you want with the
CSS3 Layout Module. Unfortunately, very few browsers are compatibles at this point (FF4 & WebKit browsers maybe ?)