Voici une version qui ne répond pas parfaitement pas aux spécifications puisque les distances ne sont affichées que tous les 5mm.
J'utilise la bibliothèque TikZ `fit` pour réduire peu à peu la taille du nœud `box` qui est initialisé à `current page`. Pour réduire sa taille, l'astuce consiste à utiliser une valeur de `inner sep` négative (ici, -1mm). Il faut aussi savoir qu'on peut itérativement redéfinir un noeud en utilisant son ancienne position.
Pour dessiner une ligne spéciale (grosse et avec un label) toutes les cinq lignes, j'utilise un calcul sur la valeur `\i` (son `\rest`) grâce à un appel à `evaluate` dans le `\foreach`.
\documentclass[a4paper]{article}
\usepackage{tikz}
\usetikzlibrary{fit}
\pagestyle{empty}
\begin{document}
\begin{tikzpicture}[overlay,remember picture]
\tikzset{
petite ligne/.style={line width=.1pt,draw=gray},
grosse ligne/.style={line width=1.pt,draw=black},
fit réduit/.style={fit=(box),inner sep=-1mm},
}
% initialisation du noeud box
\node[line width=0,fit=(current page),inner sep=0](box){};
\foreach \i [evaluate={\i as \rest using int(mod(\i,5))}] in {1,2,...,90}{
% réduction de 1mm
\node[fit=(box),inner sep=-1mm] (box) {};
% cadre différent selon \rest
\ifnum\rest=0\relax
\draw[grosse ligne] (box.south west) rectangle (box.north east);
\path (box.north) node[font=\tiny,fill=white]{\i\space mm};
\else
\draw[petite ligne] (box.south west) rectangle (box.north east);
\fi
}
\end{tikzpicture}
\end{document}