A little preliminary: I'm an undergraduate student and I started to study category theory as self-taught at the beginning of second year of university, mostly because of my interest in logic and foundations. Since then I've enjoyed of this fact because knowing some category theory helped me to understand lots of concepts that I've learned more quickly then what I would have done without it, also category theory move me to study some branch of maths like algebraic topology and algebraic geometry. Now I would distinguish between "category theory" and "the language and instrument of category theory": while the first is an abstract and too specific branch of math, so not adequate to be considered in a undergraduate courses, the second is the very useful conceptual tool that should be taught also to undergraduate students. What I mean here is that (the language of) category theory shouldn't be teached in a specific course but it should be taught during the regular courses.
I believe that some basic concepts like the ones of category and functor could be taught since first courses of algebra, that's because these concepts are not more abstract than those of groups-group homomorphism,ring-ring homomorphism, vector space-linear map which are taught in the first year's courses. Categories and functors can be easily shown to a young public respectively as graphs with structure (i.e. operation) and as graph morphisms preserving the structure. Many example can be given to those concepts which can be understood by undergraduates: the categories of graphs' points and graphs' paths, the category of sets and functions, the category of groups and group homomorphisms, vectorial spaces and linear maps, but also monoids, groups and poset as categories. In particular its very useful made these last example in first courses because they help in familiarizing with abstraction before mind is corrupted by concrete (I remember that after having done some basic algebra I found a lot of difficulties to understand why monoids should be categories with one object).
Obviously categorical concepts should be introduced in a very gradual way, for instance its useless teaching natural transformation before having seen homotopies and groups' representation (or equivalently groups' actions), same apply for other more complex concepts: every thing need to be introduced at right time.
Many would object that probably concepts should be presented every time when they are needed. To those people I would say that probably they right, anyway no-one have ever introduced to me abstract concepts like the ones of groups and rings with some motivation, same apply to topological spaces, the motivations for introducing these objects came late, when where introduced some results which gives us a more abstract framework in which some kind of problems tend to simplify and generalize.
Last motivations of teaching category theory early is that many times seeing thing from an abstract point of view helps when we want to switch constructions from categories, where these constructions are build naturally, to other categories (it comes to my mind the example of homotopies of complexes in homological algebra) and also shows deep unity of lots of mathematical objects that maybe at first seem unrelated.