Das Paket [`numprint`](http://www.ctan.org/pkg/numprint) bietet mit die Möglichkeit, per `\nplpadding` eine feste Anzahl an Vorkommastellen vorzugeben:
\documentclass[12pt, oneside,numbers=endperiod]{scrbook}
\usepackage[utf8]{inputenc}% Geändert, damit der Online-Editor damit klar kommt.
\usepackage[ngerman]{babel}
\usepackage[ngerman]{varioref} % Referenzen
\usepackage[T1]{fontenc}
\usepackage{numprint}
\usepackage[left=3.8cm, right=2.8cm, top=2.5cm, bottom=2cm]{geometry}
%Kompositionszähler
\newcounter{kompzaehl}
\setcounter{kompzaehl}{0}
\newcommand{\KompNr}{\stepcounter{kompzaehl} \hspace*{\fill}{\nplpadding{4}\scriptsize (K\cntprint{kompzaehl})}}
\begin{document}
Hallo Welt
\KompNr \\
\KompNr \\
\setcounter{kompzaehl}{1000}
\KompNr \\
\KompNr \\
\end{document}
Will man nicht, dass bei großen Zahlen *nach Tausender*, also jeweils drei Stellen für die bessere Lesbarkeit der Zahlen gruppiert werden sollen, so kann man das *Trennzeichen* per `\npthousandsep{}` abschalten:
\documentclass[12pt, oneside,numbers=endperiod]{scrbook}
\usepackage[utf8]{inputenc}% Geändert, damit der Online-Editor damit klar kommt.
\usepackage[ngerman]{babel}
\usepackage[ngerman]{varioref} % Referenzen
\usepackage[T1]{fontenc}
\usepackage{numprint}
\usepackage[left=3.8cm, right=2.8cm, top=2.5cm, bottom=2cm]{geometry}
%Kompositionszähler
\newcounter{kompzaehl}
\setcounter{kompzaehl}{0}
\newcommand{\KompNr}{\stepcounter{kompzaehl} \hspace*{\fill}{\npthousandsep{}\nplpadding{7}\scriptsize (K\cntprint{kompzaehl})}}
\begin{document}
Hallo Welt
\KompNr \\
\KompNr \\
\setcounter{kompzaehl}{1000000}
\KompNr \\
\KompNr \\
\end{document}
Für weitere Konfigurationsmöglichkeiten, die bei diesem Paket sehr vielfältig sind, sei ausdrücklich auf die Anleitung verwiesen.