やはり..を使う限りstableでは無理でnightlyでないと以下のような素朴な実装も無理ということでしょうか
少し例を実用的に変えてみましたがトレイト境界(制約)を最小限で以下のようなコードでnightlyだと動いています

#![feature(step_trait)]

fn main() {
 let n = 5; // 任意の整数型
 n.times(|n| println!("OK {}", n));
}

trait Times<T: Sized> {
 fn times<F>(self, f: F) where F: FnMut(T) -> ();
}

impl<T> Times<T> for T where T: num::Zero + std::iter::Step {
 fn times<F>(self: T, f: F) where F: FnMut(T) -> () {
  (num::Zero::zero()..self).for_each(f);
 }
}