Integer programming with a fixed number of variables
The current fastest algorithm is actually linear in the length of the integer linear program for every fixed value of $n$. In his PhD thesis, Lokshtanov (2009) nicely summarizes the results by Lenstra (1983), Kannan (1987), and Frank &amp; Tardos (1987) by the following theorem.


  Integer Linear Programming can be solved using $O(n^{2.5n+o(n)} \cdot L)$
  arithmetic operations and space polynomial in $L$. Here $L$ is the
  number of bits in the input and $n$ the number of variables in the
  integer linear program.


Thus, the problem is fixed-parameter linear parameterized by the number of variables.

1) Yes, Integer Linear Programming is "still" NP-complete. The running time of the theoretical result above depends only linearly on the number of constraints, so it scales nicely in the number of constraints. However I know of no actual implementation of this algorithm.

2) Yes, making the variables take binary values is straightforward as you observed.

Update. The dependence on $L$ can actually be improved in the running time for Integer Linear Programming. Based on Clarkson (1995) and Eisenbrand (2003) (see the comments below) one can obtain an algorithm with running time $$O(2^nnm + 8^n n \sqrt{m \log m} \log m + n^{2.5n+o(n)}s\log m)$$
where $m$ is the number of constraints and $s$ is the maximum number of bits required to encode a constraint or the objective function.