I'm currently learning Bach's Bourree, although I'm into second part of it, I have troubles getting the timing correct. Usually it follows a 3 bar flow (except few places, where it really speeds up), but then when I listened to the performances by John Williams and Goran Sollscher, they do slow it up and speed it wherever necessary. Is it possible to learn these via online tutorials or does these minor issues can be corrected only by a teacher at hand sitting beside or any other way ?
I agree with AbstractDissonance, that this cannot be completely taught. However, this book does a good job of describing it and how to approach it.
Learning the Classic Guitar Part 3 Book/CD Set by Aaron Shearer
It also has a great section on how to prepare for a performance. It makes a few references to Part 1 and 2, but if you are already learning Bach you probably have the knowledge you need to skip 1 and 2.
I assume you mean rubato. It's more a feel thing that can't be taught without sounding artificial. It's something you must develop from listening to others using it and feeling the music. There are certain common things such as slowing down near a cadence and speeding up on a climax... usually called accelerando's and ritardando's.
The idea of rubato is basically to make the music sing. A singer never sings perfectly in time and the melody is here and there but the singer, if singing with accompaniment, must be in strict time(assuming the accompaniment is) in some average sense(else he will get out of time). A piano piece is similar. You have the melody, the singer, and the chords(the accompaniment). The chords keep strict time and the melody should weave in and out(but like it is being sung). It is very subtle though and can be very bad if not done with taste/musicality.
This isn't to say you have to strictly do this but I believe Chopin taught it that way and he was suppose to have been the master of rubato. Maybe the way to think about it is that if you play it too perfect in time it will sound robotic(like "midi"). But it should be natural so it doesn't feel jerky. It's also going to depend on the context. Some melodic notes are going to naturally want to fall on the beat and some are going to be ok slightly after and some slightly before to make them work best. The same notes may change the way they work in a different song in the same key.
All this stuff can't really be taught and this is what makes some people better than others. They have some innate understanding or just the way they practiced that make them play the way they do. There are some people with poor time but sound better than some with perfect time(many more factors are involved than time in making something sound good).
In any case I think you should be able to play it in perfect time before you start trying to play around with it. When you learn to make a connection with the music you'll naturally start adding these timing inflections to express the feeling you are expressing. If you try to force it then it will sound unnatural and unmusical.