The result is true.
Suppose first that $\lim_{x\to 0}f(x)=0$. Then let $g(x)=\sin(1/x)$ if $x\ne 0$. From here on we may assume that it is not the case that $\lim_{x\to 0}f(x)=0$.
Suppose next that there is a puntured neighbourhood $A$ of $0$ such that for every $a\in A$, we have $f(a)\ne 0$.
Let $g(x)$ be arbitrary outside $A$, and let $g(x)=1/f(x)$ for $x\in A$ and $x\ne 0$. Then $\lim_{x\to 0}f(x)g(x)=1$. But $\lim_{x\to 0}g(x)$ does not exist.
For if the limit is $0$, then $|f(x)|$ blows up as $x\to 0$, contradicting one of the stated conditions on $f(x)$. If the limit is $b$ where $b$ is non-zero real, then $\lim_{x\to 0}f(x)=1/b$, contradicting another of the conditions on $f$. And the limit cannot be some version of $\infty$, else we would have $\lim_{x\to 0}f(x)=0$, which has already been dealt with.
Finally, suppose that in every punctured neighbourhood of $0$, there is an $x\ne 0$ such that $f(x)=0$. Then let $g(x)=0$ where $f(x)\ne 0$, and $g(x)=\frac{1}{x}$ where $f(x)=0$.