Voici une solution.
1. Ne pas utiliser l'option `twocolumn`.
2. Utiliser plutôt la commande `\twocolumn` juste avant ou après `\begin{document}`.
3. Utiliser `\usepackage[....]{geometry}` pour régler la largeur de texte.
4. Il est préférable d'ajouter au préambule les réglages suivants : `\setlength\marginparsep {10pt}` et `\setlength\parindent{1em}`.
**MWE**
\documentclass{article}%
\usepackage{mwe}
\usepackage[textwidth=490pt]{geometry}
\usepackage[nonewpage]{imakeidx}
\indexsetup{level=\section*,toclevel=section}
\makeindex[columns=1]%
\twocolumn
\begin{document}
Bla bla
\index{a}\index{b}\index{c}
\blinddocument
Bla bla
\index{foo}\index{bar}\index{car}
\printindex
\end{document}
**Une autre solution** : la solution précédente est la solution proposé par l'auteur de l'extension *imakeidx* (expert de renommée internationale). S'il y a des débordement donc c'est à cause de quelque chose d'autre.
\documentclass[twocolumn]{article}%
\usepackage{mwe}
\usepackage[nonewpage]{imakeidx}
\indexsetup{level=\section*,toclevel=section}
\makeindex[columns=1]%
\makeatletter
\renewenvironment{theindex}
{\section*{\indexname}%
\@mkboth{\MakeUppercase\indexname}%
{\MakeUppercase\indexname}%
\parindent\z@
\parskip\z@ \@plus .3\p@\relax
\let\item\@idxitem}
{}
\makeatother
\usepackage[nonewpage]{imakeidx}
\indexsetup{level=\section*,toclevel=section}
\makeindex[columns=1]%
\begin{document}
Bla bla
\index{a}\index{b}\index{c}
\blinddocument
Bla bla
\index{foo}\index{bar}\index{car}
\printindex
\end{document}