Of course it is going to be slow to reload, it has to load all the application code again and not just the one file. Django is not PHP, so don't expect it to work the same.
If you really want Django to reload on every request regardless, then use CGI and a CGI/WSGI bridge. It is still going to be slow though as CGI itself adds additional overhead.
The Apache/mod_wsgi method of using a code monitor, which works for daemon mode when using UNIX, or if using Windows, is the best compromise. That is, it checks once a second for any code file which is a part of the application being changed and only then restarting the process. The run server itself also uses this one second polling method from memory as well.
Using this polling approach does introduce a one second window where you may make a request before code reload requirement has been detected. Most people aren't that quick though to progress from saving a file to reloading in browser and so wouldn't notice.
In Apache/mod_wsgi 3.0 there are mechanisms which would allow one to implement an alternative code reloader that eliminates that window by being able to schedule a check for modified code at the start of a request, but this is then going to impact the performance of every request. For the polling method it runs in the background and so doesn't normally cause any performance impact on requests.
Even in Apache/mod_wsgi with current versions you could do the same by using embedded mode and setting Apache MaxRequestsPerChild to 1, but this is also going to affect performance of serving static files as well.
In short, trying to force a reload on every request is just not the best way of going about it and certainly will not eliminate the load delays resulting from using a fat Python web application such as Django.