distinct.count(:attribute_name)を使用できます 。
(Rails 3では次を使用します:count(:user_id, distinct: true) 代わりに)
したがって:
UserVideoWatching.where("created_at >= ? AND user_id != ?", 1.month.ago, User.elephant.id)
.group("DATE(created_at)").reorder('created_at').distinct.count(:user_id)
テストはできませんが、目的のSQLが生成されると思います。