Determine all functions $f : \mathbb{R} \to \mathbb{R}$ satisfying
    \[ f(a^2) - f(b^2) \leq (f(a)+b)(a-f(b)) \] for all $a,b \in \mathbb{R}$.
1. **Define the assertion**: Let \( P(a, b) \) be the given assertion:
   \[
   P(a, b): f(a^2) - f(b^2) \leq (f(a) + b)(a - f(b))
   \]

2. **Evaluate \( P(0, 0) \)**:
   \[
   P(0, 0): f(0^2) - f(0^2) \leq (f(0) + 0)(0 - f(0)) \implies 0 \leq 0
   \]
   This is always true, but it doesn't provide new information.

3. **Evaluate \( P(a, 0) \)**:
   \[
   P(a, 0): f(a^2) - f(0) \leq f(a) \cdot a \implies f(a^2) \leq a f(a)
   \]

4. **Evaluate \( P(0, b) \)**:
   \[
   P(0, b): f(0) - f(b^2) \leq b \cdot (-f(b)) \implies -f(b^2) \leq -b f(b) \implies f(b^2) \geq b f(b)
   \]

5. **Combine the results from steps 3 and 4**:
   \[
   f(a^2) \leq a f(a) \quad \text{and} \quad f(a^2) \geq a f(a)
   \]
   Therefore, we have:
   \[
   f(a^2) = a f(a)
   \]

6. **Check if \( f \) is odd**:
   \[
   f(a^2) = a f(a) \implies f((-a)^2) = (-a) f(-a) \implies f(a^2) = -a f(-a)
   \]
   Since \( f(a^2) = a f(a) \), we have:
   \[
   a f(a) = -a f(-a) \implies f(a) = -f(-a)
   \]
   Thus, \( f \) is an odd function.

7. **Evaluate \( P(a, b) \) with the new information**:
   \[
   f(a^2) - f(b^2) \leq (f(a) + b)(a - f(b))
   \]
   Substitute \( f(a^2) = a f(a) \) and \( f(b^2) = b f(b) \):
   \[
   a f(a) - b f(b) \leq (f(a) + b)(a - f(b))
   \]

8. **Simplify the inequality**:
   \[
   a f(a) - b f(b) \leq a f(a) - f(a) f(b) + b a - b f(b)
   \]
   \[
   0 \leq - f(a) f(b) + b a
   \]
   \[
   f(a) f(b) \leq a b
   \]

9. **Evaluate \( Q(a, -b) \)**:
   \[
   Q(a, -b): f(a) f(-b) \leq -a b
   \]
   Since \( f \) is odd, \( f(-b) = -f(b) \):
   \[
   f(a) (-f(b)) \leq -a b \implies -f(a) f(b) \leq -a b \implies f(a) f(b) \geq a b
   \]

10. **Combine the results from steps 8 and 9**:
    \[
    f(a) f(b) \leq a b \quad \text{and} \quad f(a) f(b) \geq a b
    \]
    Therefore, we have:
    \[
    f(a) f(b) = a b
    \]

11. **Set \( b = 1 \)**:
    \[
    f(a) f(1) = a \implies f(a) = \frac{a}{f(1)}
    \]

12. **Determine \( f(1) \)**:
    Let \( c = f(1) \). Then:
    \[
    f(a) = \frac{a}{c}
    \]
    Substitute back into the original equation to verify:
    \[
    f(a^2) = \frac{a^2}{c} \quad \text{and} \quad a f(a) = a \cdot \frac{a}{c} = \frac{a^2}{c}
    \]
    Both sides match, so the function \( f(a) = \frac{a}{c} \) is valid.

13. **Check for specific values of \( c \)**:
    If \( c = 1 \), then \( f(a) = a \).
    If \( c = -1 \), then \( f(a) = -a \).

Thus, the solutions are:
\[
\boxed{f(x) = x} \quad \text{and} \quad \boxed{f(x) = -x}
\]