Parametric polymorphic values in OCaml's type system can be thought of as "choose an assignment of the variables in this type, and you can use this value with that monomorphic type". But there's no monomorphic type that lets 'helper' do the right thing, so you actually need something more expressive than ordinary polymorphic types.
In Haskell there's higher-rank polymorphism, which in this case would look something like 'helper :: (forall a. T a -> b) -> Helper b', so that you could only pass sufficiently-polymorphic arguments to helper. However, as Jeremy said, there's a lot of added complexity involved.