After reading Practical Common Lisp I finally understood what the big deal about macros was, and I have been looking for a language for the .NET platform that supports this.
but good horrors the syntax in those ocaml examples looks obscure
There you're running into the same fundamental syntactic trade-off you do with Lisp. If you want the power of lisp-like macros, you tend to either end up with lisp-like syntax for the language, or else your macro syntax looks quite different from your regular syntax... nothing wrong with either approach, just different choices
Well, F# is based on OCaml and OCaml has a rather extensive macro system. Given the syntactic and semantic similarities of F# and OCaml you may be able to port over the Ocaml macro system to F#.
Other than stealing Ocaml's macro system I'm unaware of a canned macro system for F#.
That may be the other way around than what you want, but do you know about RDNZL? It's a foerign-function interface (FFI) that lets you call .NET libraries from your Lisp code.
They are most probably much less mature than any Common Lisp or Scheme implementation, but there are Lisp dialects for .NET: L# and DotLisp.
Nope. No macros for F#.
I'm currently investigating possibilities of meta-programming in F#. If we define macros as text template which expands into code then there are two obvious approaches:
T4 templates. There is implementation for F#: https://github.com/kerams/Templatus
I've seen somewhere invocation of F# from strings into separate assembly and then loading of the assembly.
I thought I should point out that there is now a pretty active .NET/Mono port of Clojure. Clojure supports LISP style macros as is noted in the question.
As others have said, macros are not supported in F# at this point (late 2010).