Threading in F# is mostly via System.Threading, and not via any language-specific features. Implementing SyncVar with System.Threading should be straightforward though. SyncVars will need an object to use as a monitor; writing to a SyncVar should acquire the monitor, set the value, and pulse; reading a SyncVar should acquire the monitor, yield until the value is set, and pulse on exit (in case there are multiple readers.) I'm not familiar with Scala SyncVars or what semantics you want for the list (for example, can the producer produce nothing, i.e. nil is also lazy, etc.)
I believe you can use Greg Neverov's new patterns feature to make unpacking sync lists as easy as matching on lists! Should be cool!