Die Ausrichtung der Karos kannst mit der Angabe von `baseline` für die `tikzpicture` Umgebung erreichen. Dabei lässt sich einfach der Node `current bounding box` mit einer passenden vertikalen Verschiebung nutzen.
Wenn Du automatisch die maximal mögliche Kästchenzahl haben willst, musst Du irgendwie die Breite der Aufgabe ermitteln.
Eine Möglichkeit wäre
\documentclass[11pt]{exam}
%\usepackage{showframe}% Anzeigen der Seitenaufteilung
\usepackage{tikz}
\newlength\Aufgabenbreite
\newcommand\KarozeilenNachAufgabe[3][0.5cm]{%
\settowidth\Aufgabenbreite{#3}%
#3\enskip
\begin{tikzpicture}[gray,step=#1,baseline={([yshift=-1em]current bounding box.north)}]
\pgfmathtruncatemacro\anzahl{(\linewidth-\pgflinewidth-\Aufgabenbreite-1ex)/#1} % maximale Anzahl Kästchen pro Zeile
\draw (0,0) rectangle (\anzahl*#1,#2*#1) (0,0) grid (\anzahl*#1,#2*#1);
\end{tikzpicture}}
%
\begin{document}
\begin{questions}
\question Berechne:
\begin{parts}
\part \KarozeilenNachAufgabe{2}{$1+2=$}
\part \KarozeilenNachAufgabe{2}{$\frac{3}{2}+0{,}4=$}
\end{parts}
\end{questions}
\end{document}
[![alt text][1]][1]
[1]: https://texwelt.de/upfiles/tw_kariertezeile_1.png