Would it technically be possible? If it's to be implemented in Java, I'd say "very, very hard, but possible" without significant performance loss.
I'm actually handwriting a statically typed DSL in Java right now, and the only way I've found to avoid runtime type-checking is to use generics and suppress "unchecked" warnings... that is, until the time came to implement multi-dimensional arrays (class parameters must be known at compile time and are thus inherently finite, whereas multi-dimensional arrays represent an infinite number of types...) Still trying to figure this one out, unfortunately-- I'm sure I'll encounter similar problems with user defined classes.
Thing is, I keep stumbling on these sorts of problems, but after sitting on it for a while, I come up with a good solution. So, to do it and have the performance benefits of static typing (no runtime type checking), I'd say it's extremely difficult, but not impossible. Minus the performance, I'd say hard but very possible.
I know it's an old question, just thought my experience might be valuable to someone.