Запятая не нужна. Читаем и проникаемся смыслом правила:
Полный текст здесь.
В нашем случае выражение с признаками фразеологического можно заменить синонимами каждый, любой, оба или даже все. Это ещё раз подтверждает предположение о том, что идёт не перечисление различных объектов или явлений, но имеется ввиду некая их некая совокупность, а "перечисление" носит лишь формальный характер. Простейший пример:
"Иванов и Петров были лентяями. И тот и другой никогда не брались за учебник".
Сразу видно, что об обоих лентяях рассказывается "списком". Их уже назвали в первом предложении, так что перечислять заново во втором предложении было бы нелогично.
Возникает резонный вопрос: а где же обещанное в правиле противопоставление значений? Чем Иванов противоположен Петрову, особенно если учесть, что оба названы лентяями? Это очень завуалированное противопоставление, выраженное именами. Одна из функций имени - выделение его носителя из массы, противопоставление носящего имя всем остальным. В этом смысле Петрова отличают от Иванова: каждый из них существует в единственном экземпляре, хотя эти два разных лица оказываются очень похожими друг на друга.
Ещё один справедливый вопрос: если в выражении и тот и другой нет реального перечисления, если их можно заменить однословными синонимами, то почему это выражение вообще употребляется?
Устная речь в рамках литературного языка развивается не по принципу "говорим лишь то, что просто написать", а по своим собственным законам, никак не учитывающим правописание. Когда в языке есть вариативность средств выражения, то в нём присутствует гибкость, позволяющая наиболее точно и наиболее логично выразить мысль в конкретных случаях. Ведь "каждый", "любой","оба" и "все" - это отнюдь не взаимозаменяемые слова, их семантические поля пересекаются лишь частично, а не накладываются друг на друга полностью. "Все" и "оба" синонимичны лишь тогда, когда всех всего лишь двое. Если язык сохраняет данное выражение, значит, оно ему нужно.