Non ti basterebbe rendere \capo equivalente a \section e \punto equivalente a \subsection?
`
\let\capo\section
\let\punto\subsection
`
Capisco che non fanno la stessa cosa, ma le definizioni originali nel file article.cls sono
`
\newcommand\section{\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\normalfont\Large\bfseries}}
\newcommand\subsection{\@startsection{subsection}{2}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\normalfont\large\bfseries}}
`
Caso mai, io copierei queste due definizioni aggiustando i valori, ma non lo \z@, e cambiando i segni. Suppongo che tu voglia una spaziatura verticale prima ci \capo e di \unto, ma tu voglia continuare il testo del capo e del punto sulla stessa riga.
Confronta i valori degli spazi nella classe article.cls per i successivi comandi di sezionamento; lo \z@ serve per stabilire la rientranza del titolino, ed è giusto che normalmente sia nulla. In article.cls solo il \subparagraph ha una rientranza di \parindent. ma per le due gomme successive il segno negativo per la prima vuol dire di lasciare uno spazio sopra, e un segno positivo nella seconda vuol dire di lasciare uno spazio verticale sotto al titolino. per la seconda un valore positivo indica di continuare sulla stessa riga lasciando uno spazio orizzontale.
Dopo di che gli altri comandi che hai usato tu per caratterizzare il font del titolino vanno bene