Maths behind why removing values from DFT is not a brick wall filter
A true brickwall filter would require an infinite impulse response in the time domain, since the inverse Fourier Transform of a rectangular window (brickwall frequency response) is a Sinc function. Since for the DFT the number of samples in the frequency domain is equal to the number of samples in the time domain, this would require you to have an infinite number of samples in the frequency domain and then require you to null an infinite number of samples.

For anything less, the impulse response in time becomes an aliased Sinc function which no longer corresponds to a true brickwall frequency response. 

If you restrict your frequency space to just the DFT samples however, you will of course achieve a brickwall response following the rules that all samples outside of your rectangular window (in frequency) are zero. However in the implementation of a filter we are often concerned with the frequency response of signals that exist on a continuous frequency domain, in which case as described above you will not be able to achieve a perfect brickwall frequency response.