If you want the page numbers at the index, simply do not remove them with your redefinition of \index. The formatting can be done with some changes of Idx.ist and some additional definitions:
\RequirePackage{filecontents}
\begin{filecontents*}{Idx.ist}
headings_flag 1
heading_prefix "\\indexheading{"
heading_suffix "}"
delim_0 "\\hfill"
group_skip "\n"
preamble "\\begin{theindex}\\starttheindex"
postamble "\n\\stoptheindex\\end{theindex}"
\end{filecontents*}
\documentclass[8.5pt,% book does not know this option (but don't forget the comma!)
twoside,% this is default
openany,% so usually you do not need \let\cleardoublepage\clearpage
a4paper]{book}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel} % use new spelling instead of old
\usepackage[utf8]{inputenc}
%\usepackage[scaled]{uarial}% uarial is a very ugly mix of Arial and Helvetica
\renewcommand{\familydefault}{\sfdefault}
\usepackage{multicol}
\usepackage{titlesec}
\usepackage{imakeidx}
\usepackage{hyperref}
\makeindex[options=-s Idx.ist]
% If you do not want page numbers but, e.g. subsection numbers in the index:
%\LetLtxMacro\OldIndex\index
%\newcommand*{\indexpage}[2]{#1}
%\renewcommand{\index}[1]{\OldIndex{#1|indexpage{\thesubsection}}}
\newcommand*{\indexheading}[1]{%
\indexrule
\textbf{#1}\par
\nopagebreak
\vskip-\baselineskip% go back to the heading line
}
\newcommand*{\indexrule}{%
\par\nopagebreak
\vskip-\ht\strutbox
\hrulefill\par\pagebreak[3]
\vskip -\baselineskip
\hrulefill\par\nobreak
}
\newcommand*{\starttheindex}{\raggedcolumns}
\newcommand*{\stoptheindex}{\indexrule}
\makeatletter
\renewcommand*{\@idxitem}{\par\hangindent 2em\hskip 1.5em}% indent the entry
\makeatother
\begin{document}
\chapter{Test}
Irgendein Text.
\section{Eins}
Blablabla.
\subsection{Regeln}
\index{Ausland}
\index{Sieger}
\index{Spieler}
\index{Spielfeld}
\subsection{Beschäftigung}
\index{Beruf}
\index{Arbeit}
\vfill
\clearpage% should be used before \addcontentsline
\addcontentsline{toc}{chapter}{Stichwortverzeichnis}% the index is a chapter and becomes the font for chapter entries that is already bold
\renewcommand{\indexname}{Stichwortverzeichnis}
\fontsize{7.5pt}{0pt}
\printindex
\end{document}

If you remove the % in front of
\LetLtxMacro\OldIndex\index
\newcommand*{\indexpage}[2]{#1}
\renewcommand{\index}[1]{\OldIndex{#1|indexpage{\thesubsection}}}
you'll get:

To avoid column breaks inside groups you can add an additional \nopagebreak in the definition of \@idxitem:
\RequirePackage{filecontents}
\begin{filecontents*}{Idx.ist}
headings_flag 1
heading_prefix "\\indexheading{"
heading_suffix "}"
delim_0 "\\hfill"
group_skip "\n"
preamble "\\begin{theindex}\\starttheindex"
postamble "\n\\stoptheindex\\end{theindex}"
\end{filecontents*}
\documentclass[8.5pt,% book does not know this option (but don't forget the comma!)
twoside,% this is default
openany,% so usually you do not need \let\cleardoublepage\clearpage
a4paper]{book}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel} % use new spelling instead of old
\usepackage[utf8]{inputenc}
%\usepackage[scaled]{uarial}% uarial is a very ugly mix of Arial and Helvetica
\renewcommand{\familydefault}{\sfdefault}
\usepackage{multicol}
\usepackage{titlesec}
\usepackage{imakeidx}
\usepackage{hyperref}
\makeindex[options=-s Idx.ist]
% If you do not want page numbers but, e.g. subsection numbers in the index:
%\LetLtxMacro\OldIndex\index
%\newcommand*{\indexpage}[2]{#1}
%\renewcommand{\index}[1]{\OldIndex{#1|indexpage{\thesubsection}}}
\newcommand*{\indexheading}[1]{%
\indexrule
\textbf{#1}\par
\nopagebreak
\vskip-\baselineskip% go back to the heading line
}
\newcommand*{\indexrule}{%
\par\nopagebreak
\vskip-\ht\strutbox
\hrulefill\par\pagebreak[3]
\vskip -\baselineskip
\hrulefill\par\nobreak
}
\newcommand*{\starttheindex}{\raggedcolumns}
\newcommand*{\stoptheindex}{\indexrule}
\makeatletter
\renewcommand*{\@idxitem}{\par\nopagebreak\hangindent 2em\hskip 1.5em}% indent the entry
\makeatother
\begin{document}
\chapter{Test}
Irgendein Text.
\section{Eins}
Blablabla.
\subsection{Regeln}
\index{Ausland}
\index{Sieger}
\index{Spieler}
\index{Spielfeld}
\subsection{Beschäftigung}
\index{Beruf}
\index{Arbeit}
\index{Test1}\index{Test2}\index{Test3}\index{Test4}\index{Test5}
\index{Test6}\index{Test7}\index{Test8}\index{Test9}\index{Test10}
\vfill
\clearpage% should be used before \addcontentsline
\addcontentsline{toc}{chapter}{Stichwortverzeichnis}% the index is a chapter and becomes the font for chapter entries that is already bold
\renewcommand{\indexname}{Stichwortverzeichnis}
\fontsize{7.5pt}{0pt}
\printindex
\end{document}
But I would not recommend this, because you will get overfull columns if a group is larger than the column height.
To change the vertical distance above the rule, just change the line
\vskip-\ht\strutbox
in the definition of \indexrule, e.g.,
\newcommand*{\indexrule}{%
\par\nopagebreak
\vskip\dp\strutbox\nopagebreak
\hrulefill\par\pagebreak[3]
\vskip -\baselineskip
\hrulefill\par\nobreak
}
would result in

Note that I've used another font, because I do not have the ugly URW-Arial installed.
You should also have a look at the several notes I've added to the code.
CTRL-Kto format the code as code block. – Jan Jan 27 '17 at 08:44\struntbox. I've added the indentation to my answer know. – Schweinebacke Jan 27 '17 at 11:49